gpt4 book ai didi

c++ - 在 Visual Studio 中,有没有办法在通过 GetModuleHandle + GetProcAddress 调用的某些函数中设置断点?

转载 作者:行者123 更新时间:2023-11-28 03:17:01 24 4
gpt4 key购买 nike

当使用下面的代码时,似乎即使我将 TheFST.dll 链接到调试信息 (/DEBUG),我也无法在断点处停止函数 setSecurityRetriever

调用 GetModuleHandle 时 .pdb 没有被 VS 加载的原因是什么?如果正常,如何更改行为以强制 VS 加载 .pdb 文件?

const string bondDataRetrieveDLLName("TheFST.dll");
HMODULE hMod = GetModuleHandle(bondDataRetrieveDLLName.c_str());
if(hMod)
{
SecurityData bdrs = reinterpret_cast<SecurityData>(GetProcAddress(hMod, "setSecurityRetriever"));
if(bdrs)
bdrs(callback);
}

最佳答案

如前所述,您可以使用 DebugBreak() 以编程方式设置断点。

如果您使用的是 MSVC,您还可以将 __asm int 3 放在您想要设置断点的位置。它将恰好在那条线上中断。请记得事后将其删除。

关于c++ - 在 Visual Studio 中,有没有办法在通过 GetModuleHandle + GetProcAddress 调用的某些函数中设置断点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16569697/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com