簡體   English   中英

VS2008調試器和kernel32.dll

[英]VS2008 debugger and kernel32.dll

我一直在調試一個進程(在C ++ / Windows中),該進程使用kernel32.dll中的“ GetThreadContext”。
我注意到我可以得到它的地址

unsigned long address = (unsigned long)(&GetThreadContext);

但是當我查看已加載的模塊選項卡時-我看到kernel32.dll的符號未加載!
VS2008如何知道“ GetThreadContext”的地址?
而我又如何在沒有PDB的情況下自己做呢?
謝謝 :)

這樣做的原因相同

GetThreadContext(hThread, lpContext);

作品。 您的代碼中使用的命名函數必須在鏈接時解析,否則鏈接將失敗。 您是否使用&取得他們的地址或打電話給他們都沒有關系。 在運行時,將加載DLL,然后函數名將解析為進程中的特定地址。

PDB文件僅用於在調試過程中提供增強的符號信息。 通常,它們在運行時不使用。

[我不禁以為我在這個問題上漏了一些東西。 告訴我這是否不是您的問題。]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM