我有一个使用C#编写的服务,调用的是最初用VC6编写的C DLL。
DLL中有一个我试图检查的bug。
在尝试让调试工作成为噩梦之后,我最终将DLL添加到包含C#服务的VS2005解决方案中,并添加了必要的“_CRT_SECURE_NO_WARNINGS”。
服务的调试版本使用“installutil.exe”工具进行注册。
我可以在通过对“System.Diagnostics.Debugger.Break();”调用进入dll的行之前使调试器中断。
我在网上找到了一些关于步入调试非托管代码的指导,启用了“启用非托管代码调试”复选框,我还尝试打开“选项->调试->本机”中的“加载DLL导出”和“启用RPC调试”(即使它不是COM)。 我还将调试版本的dll和.pdb复制到与服务相同的bin目录中。
但是非托管代码没有被步入,这正是我真正需要的。
更新:我在DLL属性中找到了调试类型,并将其设置为“混合”,如几个站点的建议,但无济于事。
更新2:我的项目现在将调试dll和pdb发射到与调试服务相同的目录中。 仍然无法调试dll。
DLL中有一个我试图检查的bug。
在尝试让调试工作成为噩梦之后,我最终将DLL添加到包含C#服务的VS2005解决方案中,并添加了必要的“_CRT_SECURE_NO_WARNINGS”。
服务的调试版本使用“installutil.exe”工具进行注册。
我可以在通过对“System.Diagnostics.Debugger.Break();”调用进入dll的行之前使调试器中断。
我在网上找到了一些关于步入调试非托管代码的指导,启用了“启用非托管代码调试”复选框,我还尝试打开“选项->调试->本机”中的“加载DLL导出”和“启用RPC调试”(即使它不是COM)。 我还将调试版本的dll和.pdb复制到与服务相同的bin目录中。
但是非托管代码没有被步入,这正是我真正需要的。
更新:我在DLL属性中找到了调试类型,并将其设置为“混合”,如几个站点的建议,但无济于事。
更新2:我的项目现在将调试dll和pdb发射到与调试服务相同的目录中。 仍然无法调试dll。