【问题标题】:Cannot debug C++ dll loaded in C#无法调试在 C# 中加载的 C++ dll
【发布时间】:2020-09-19 21:45:13
【问题描述】:

我想调试一个用 C++ 制作的 dll,而它位于一个使用发布模式的 C# 构建的可执行文件中。 C# 应用程序应该不知道。运行 C# 应用程序后,我可以手动注入当前打开另一个窗口的 dll(所以我知道这是成功的)

我在 VS2019 中以调试模式构建了 dll。我去Debug > Attach to Process。当我放一个断点时,它说我不会因为未加载符号而被击中。注射后他们确实没有被击中。 dll没有出现在Debug > Windows > Modules

我尝试了相同的任务,但这次使用notepad.exe 作为目标,而不是我的 C# 应用程序。它完美无缺。我猜记事本是用 C++ 或 C 而不是 C# 构建的

不接触C#项目就无法调试我注入的C++ dll吗?

【问题讨论】:

    标签: c# c++ debugging dll module


    【解决方案1】:

    dll没有出现在Debug > Windows > Modules

    查看输出窗口,它会告诉你它在运行时加载的每个库,以及它是否找到了符号。

    如果它说符号不存在,请确保 .pdb 文件位于与 .dll 同名的同一文件夹中,然后重试。

    此外,由于您正在调试 .Net 应用程序,请确保将调试器设置为也调试本机代码(C++ 库),因为默认情况下 VS 调试器只会将托管调试器附加到应用程序:

    最后要检查的是,确保在 VS 的选项中未选择“仅我的代码”调试,因为从 .Net 的角度来看,您要调试的库不被视为“我的代码”宿主应用程序。

    【讨论】:

    • 谢谢。问题是Native 没有被选中。答案结构很好
    猜你喜欢
    • 1970-01-01
    • 2012-03-08
    • 2013-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多