繁体   English   中英

如何使用 Visual Studio 调试 dll?

[英]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:

  1. 在您的LoadLibrary调用之后放置一个断点。

  2. Go 到菜单栏中的Debug->Windows->Modules以调出 Modules window。

  3. 在列表中搜索您的 dll 文件。 符号状态列中,它应该显示“无法找到或打开 PDB 文件”。

  4. 右键单击 dll 并从上下文菜单中选择加载符号

  5. 将其指向正确的 pdb 文件。

  6. 符号状态现在应更改为“已加载符号”。

您现在应该能够从 dll 进入函数并放置断点。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM