VirtualBox

儲存庫 vbox 的更動 106726


忽略:
時間撮記:
2024-10-27 下午09:39:04 (5 月 以前)
作者:
vboxsync
svn:sync-xref-src-repo-rev:
165609
訊息:

IPRT/ldrPE.cpp: Adjustments to new IMAGE_RUNTIME_FUNCTION_ENTRY definitions in pecoff.h. jiraref:VBP-1253

檔案:
修改 1 筆資料

圖例:

未更動
新增
刪除
  • trunk/src/VBox/Runtime/common/ldr/ldrPE.cpp

    r106602 r106726  
    35123512 * @param   uRva            The RVA of the function we want.
    35133513 */
    3514 DECLINLINE(PCIMAGE_RUNTIME_FUNCTION_ENTRY)
    3515 rtldrPE_LookupRuntimeFunctionEntry(PCIMAGE_RUNTIME_FUNCTION_ENTRY paFunctions, size_t iEnd, uint32_t uRva)
     3514DECLINLINE(PCIMAGE_AMD64_RUNTIME_FUNCTION_ENTRY)
     3515rtldrPE_LookupRuntimeFunctionEntry_Amd64(PCIMAGE_AMD64_RUNTIME_FUNCTION_ENTRY paFunctions, size_t iEnd, uint32_t uRva)
    35163516{
    35173517    size_t iBegin = 0;
     
    35193519    {
    35203520        size_t const i = iBegin  + (iEnd - iBegin) / 2;
    3521         PCIMAGE_RUNTIME_FUNCTION_ENTRY pEntry = &paFunctions[i];
     3521        PCIMAGE_AMD64_RUNTIME_FUNCTION_ENTRY pEntry = &paFunctions[i];
    35223522        if (uRva < pEntry->BeginAddress)
    35233523            iEnd = i;
     
    36063606
    36073607static int rtldrPE_UnwindFrame_Amd64(PRTLDRMODPE pThis, void const *pvBits, PRTDBGUNWINDSTATE pState, uint32_t uRvaPc,
    3608                                      PCIMAGE_RUNTIME_FUNCTION_ENTRY pEntry)
     3608                                     PCIMAGE_AMD64_RUNTIME_FUNCTION_ENTRY pEntry)
    36093609{
    36103610    /* Did we find any unwind information? */
     
    36153615     * Do the unwinding.
    36163616     */
    3617     IMAGE_RUNTIME_FUNCTION_ENTRY ChainedEntry;
     3617    IMAGE_AMD64_RUNTIME_FUNCTION_ENTRY ChainedEntry;
    36183618    unsigned iFrameReg   = ~0U;
    36193619    unsigned offFrameReg = 0;
     
    36343634            uint8_t  ab[  RT_OFFSETOF(IMAGE_UNWIND_INFO, aOpcodes)
    36353635                        + sizeof(IMAGE_UNWIND_CODE) * 256
    3636                         + sizeof(IMAGE_RUNTIME_FUNCTION_ENTRY)];
     3636                        + sizeof(IMAGE_AMD64_RUNTIME_FUNCTION_ENTRY)];
    36373637        } uBuf;
    36383638        rc = rtldrPEReadPartByRvaInfoBuf(pThis, pvBits, pEntry->UnwindInfoAddress, sizeof(uBuf), &uBuf);
     
    38693869        if (!(pInfo->Flags & IMAGE_UNW_FLAGS_CHAININFO))
    38703870            break;
    3871         ChainedEntry = *(PCIMAGE_RUNTIME_FUNCTION_ENTRY)&pInfo->aOpcodes[(cOpcodes + 1) & ~1];
     3871        ChainedEntry = *(PCIMAGE_AMD64_RUNTIME_FUNCTION_ENTRY)&pInfo->aOpcodes[(cOpcodes + 1) & ~1];
    38723872        pEntry = &ChainedEntry;
    38733873        AssertReturn(cChainLoops < 32, VERR_DBG_MALFORMED_UNWIND_INFO);
     
    39493949        {
    39503950            case RTLDRARCH_AMD64:
    3951                 rc = rtldrPE_UnwindFrame_Amd64(pThis, pvBits, pState, uRvaPc,
    3952                                                rtldrPE_LookupRuntimeFunctionEntry((PCIMAGE_RUNTIME_FUNCTION_ENTRY)pvTable,
    3953                                                                                   cbTable / sizeof(IMAGE_RUNTIME_FUNCTION_ENTRY),
    3954                                                                                   (uint32_t)uRvaPc));
     3951            {
     3952                PCIMAGE_AMD64_RUNTIME_FUNCTION_ENTRY const pEntry
     3953                    = rtldrPE_LookupRuntimeFunctionEntry_Amd64((PCIMAGE_AMD64_RUNTIME_FUNCTION_ENTRY)pvTable,
     3954                                                               cbTable / sizeof(IMAGE_AMD64_RUNTIME_FUNCTION_ENTRY),
     3955                                                               (uint32_t)uRvaPc);
     3956                rc = rtldrPE_UnwindFrame_Amd64(pThis, pvBits, pState, uRvaPc, pEntry);
    39553957                break;
     3958            }
    39563959
    39573960            default:
注意: 瀏覽 TracChangeset 來幫助您使用更動檢視器

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette