0

使用以下代码时,似乎即使我链接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);
}
4

2 回答 2

1

正如已经提到的,您可以使用 DebugBreak() 以编程方式设置断点。

如果您使用 MSVC,您也可以将 __asm int 3 放在您想要断点的位置。它将完全在那条线上打破。请记住之后将其删除。

于 2013-05-16T00:22:28.307 回答
1

从评论中推广。

您是否使用 编译了 TheFST.dll 中的代码文件/Zi?没有编译器选项/DEBUG/DEBUG是一个链接器选项

于 2013-05-16T08:17:36.200 回答