繁体   English   中英

在VS2010中调试COM dll

[英]Debug COM dll in VS2010

我有一个ASP.NET WebApplication(.NET 4.0 / C#),它与外部COM dll(用C ++编写)一起工作。

在函数调用上,它与旧的ASP项目完美配合,我在DLL代码中得到了一个AccessViolationException。

为了调试它,我从我的同事那里请求了DLL的调试版本。 我无法直接访问dll项目或源代码。

如何使用此调试DLL来找出错误发生的位置? 我无法找到一种方法来进入我正在调用的方法。 可能吗?

编辑:我也有.pdb文件,如果这是好的。 出于某种原因,我无法在Debug-> Windows-> Modules概述中看到COM dll。 我真的被卡住了,任何帮助都很感激。

您需要启用非托管代码调试

来自MSDN

Project Designer的Debug页面上提供的Unmanaged code debugging属性确定是否支持调试本机代码。 如果要调用COM对象,或者如果启动用调用项目的本机代码编写的自定义程序,并且需要调试本机代码,请选择此选项。

对于ASP,您需要在Web选项卡的Debuggers部分中检查'Native Code'。

此外,您应该在调试选项中禁用“我的代码”调试

也许您可以使用Ildasm.exe来翻录dll以查看您缺少的内容。 至于违规行为,听起来好像与此问题类似。 尝试从此SO进行静态导入。 MsCorlib.dll可能与第三方DLL有问题。

非托管DLL导致AccessViolationException

请注意依赖关系,并且您可能会遇到一些编组问题。 我建议在控制台应用程序中使用DllImport来查看它是否可以解析。 最好的lucK!

暂无
暂无

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

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