- 時間撮記:
- 2024-10-27 下午09:39:04 (5 月 以前)
- svn:sync-xref-src-repo-rev:
- 165609
- 檔案:
-
- 修改 1 筆資料
圖例:
- 未更動
- 新增
- 刪除
-
trunk/src/VBox/Runtime/common/ldr/ldrPE.cpp
r106602 r106726 3512 3512 * @param uRva The RVA of the function we want. 3513 3513 */ 3514 DECLINLINE(PCIMAGE_ RUNTIME_FUNCTION_ENTRY)3515 rtldrPE_LookupRuntimeFunctionEntry (PCIMAGE_RUNTIME_FUNCTION_ENTRY paFunctions, size_t iEnd, uint32_t uRva)3514 DECLINLINE(PCIMAGE_AMD64_RUNTIME_FUNCTION_ENTRY) 3515 rtldrPE_LookupRuntimeFunctionEntry_Amd64(PCIMAGE_AMD64_RUNTIME_FUNCTION_ENTRY paFunctions, size_t iEnd, uint32_t uRva) 3516 3516 { 3517 3517 size_t iBegin = 0; … … 3519 3519 { 3520 3520 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]; 3522 3522 if (uRva < pEntry->BeginAddress) 3523 3523 iEnd = i; … … 3606 3606 3607 3607 static 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) 3609 3609 { 3610 3610 /* Did we find any unwind information? */ … … 3615 3615 * Do the unwinding. 3616 3616 */ 3617 IMAGE_ RUNTIME_FUNCTION_ENTRY ChainedEntry;3617 IMAGE_AMD64_RUNTIME_FUNCTION_ENTRY ChainedEntry; 3618 3618 unsigned iFrameReg = ~0U; 3619 3619 unsigned offFrameReg = 0; … … 3634 3634 uint8_t ab[ RT_OFFSETOF(IMAGE_UNWIND_INFO, aOpcodes) 3635 3635 + sizeof(IMAGE_UNWIND_CODE) * 256 3636 + sizeof(IMAGE_ RUNTIME_FUNCTION_ENTRY)];3636 + sizeof(IMAGE_AMD64_RUNTIME_FUNCTION_ENTRY)]; 3637 3637 } uBuf; 3638 3638 rc = rtldrPEReadPartByRvaInfoBuf(pThis, pvBits, pEntry->UnwindInfoAddress, sizeof(uBuf), &uBuf); … … 3869 3869 if (!(pInfo->Flags & IMAGE_UNW_FLAGS_CHAININFO)) 3870 3870 break; 3871 ChainedEntry = *(PCIMAGE_ RUNTIME_FUNCTION_ENTRY)&pInfo->aOpcodes[(cOpcodes + 1) & ~1];3871 ChainedEntry = *(PCIMAGE_AMD64_RUNTIME_FUNCTION_ENTRY)&pInfo->aOpcodes[(cOpcodes + 1) & ~1]; 3872 3872 pEntry = &ChainedEntry; 3873 3873 AssertReturn(cChainLoops < 32, VERR_DBG_MALFORMED_UNWIND_INFO); … … 3949 3949 { 3950 3950 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); 3955 3957 break; 3958 } 3956 3959 3957 3960 default:
注意:
瀏覽 TracChangeset
來幫助您使用更動檢視器