![](/img/trans.png)
[英]How can I debug a C++ DLL function, called from VBA, using Visual Studio
[英]How to debug a dll using Visual Studio?
如何使用 Visual Studio 调试 dll?
我有 DLL 源、pdb 等。
我尝试了这些选项:
BOOL APIENTRY DllMain( HMODULE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
void DebugBreak();
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
{
//...
}
break;
case DLL_PROCESS_DETACH:
{
//...
}
break;
}
);
return TRUE;
}
它启动 exe 但不注入 DLL,默认情况下,此 exe 不加载 DLL,我手动注入它。
Visual Studio 可以附加 DLL 吗? 并能够在其上放置断点、查看崩溃时的调用堆栈等?
解决此问题的最快方法是通过调试器中的模块 Window:
在您的LoadLibrary
调用之后放置一个断点。
Go 到菜单栏中的Debug->Windows->Modules以调出 Modules window。
在列表中搜索您的 dll 文件。 在符号状态列中,它应该显示“无法找到或打开 PDB 文件”。
右键单击 dll 并从上下文菜单中选择加载符号。
将其指向正确的 pdb 文件。
符号状态现在应更改为“已加载符号”。
您现在应该能够从 dll 进入函数并放置断点。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.