【发布时间】:2010-03-26 11:32:03
【问题描述】:
我有一个 C# 服务正在调用最初用 VC6 编写的 C DLL。
我正在尝试检查的 DLL 中有一个错误。
在经历了一场试图让调试工作的噩梦之后,我最终将 dll 添加到包含 C# 服务的 VS2005 解决方案中,并添加了必要的_CRT_SECURE_NO_WARNINGS。
服务的调试版本是使用“installutil.exe”工具注册的。
我可以通过调用System.Diagnostics.Debugger.Break(); 让调试器在输入 dll 的行之前中断。
我在网上找到了一些关于调试非托管代码的说明,并启用了“启用非托管代码调试”复选框,我还尝试打开选项->调试->本机“加载 DLL 导出”和“启用 RPC 调试”(即使它不是 COM)。我还将调试 dll 和 .pdb 复制到与服务相同的 bin 目录中。
然而,我真正需要的是非托管代码。
更新:我在 DLL 属性中找到了调试类型,并根据多个站点的建议将其设置为“混合”,但无济于事。
UPDATE2:我的项目现在将调试 dll 和 pdb 发送到与调试服务相同的目录。仍然无法调试 dll。
【问题讨论】:
标签: c# debugging dll visual-studio-2005 service