使用以下代码时,即使我将TheFST.dll
与调试信息(/DEBUG
)链接起来,我也无法在函数setSecurityRetriever
中的断点处停止。
调用GetModuleHandle时,是否有原因导致VS无法加载.pdb?如果是正常的,我该如何更改行为以强制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);
}
答案 0 :(得分:1)
您可以使用DebugBreak()编程设置断点,如前所述。
如果您使用MSVC,也可以将__asm int 3放在您想要断点的位置。 它会在那条线上完全破裂。请记住之后将其删除。
答案 1 :(得分:1)
来自评论。
您是否使用/Zi
编译了TheFST.dll中的代码文件?那里没有编译器选项/DEBUG
。 /DEBUG
是链接器选项