gpt4 book ai didi

c# - native 代码的调试

转载 作者:行者123 更新时间:2023-11-30 12:36:49 24 4
gpt4 key购买 nike

我有一个 C# 服务正在调用最初用 VC6 编写的 C DLL。

我正在尝试检查 DLL 中的错误。

在经历了一场试图让调试工作的噩梦之后,我最终将 dll 添加到包含 C# 服务的 VS2005 解决方案中,并添加了必要的 _CRT_SECURE_NO_WARNINGS

服务的调试版本是使用“installutil.exe”工具注册的。

我可以通过调用 System.Diagnostics.Debugger.Break(); 让调试器在输入 dll 的行之前中断。

我在网上找到了一些关于调试非托管代码的说明,并启用了“启用非托管代码调试”复选框,我还尝试打开选项->调试-> native “加载 DLL 导出”和“启用 RPC 调试”(即使它不是 COM)。我还将调试 dll 和 .pdb 复制到与服务相同的 bin 目录中。

然而,我真正需要的是未进入非托管代码。

更新:我在 DLL 属性中找到了调试类型,并根据多个站点的建议将其设置为“混合”,但无济于事。

UPDATE2:我的项目现在将调试 dll 和 pdb 发送到与调试服务相同的目录。仍然无法调试 dll。

最佳答案

尝试将非托管代码设置为启动项目。我知道这没有意义,但我记得这是为一个非常相似的项目工作的。

由于 DLL 没有关联的可执行文件,当您尝试运行时,它会弹出询问要运行的应用程序。浏览到您的 C# 应用,然后就可以开始了。

调试愉快!

编辑:已经有一段时间了,但我认为调试类型 Mixed 是正确的

关于c# - native 代码的调试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2522872/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com