繁体   English   中英

调试非托管应用程序并同时管理C#dll

[英]Debugging unmanaged application and managed C# dll at the same time

我的设置:
Application.exe (Visual Studio 6.0 C ++)
Component.dll (Visual Studio 2010 C#)
Application.exe使用Component.dll

我希望能够同时调试我的Visual Studio 6.0 C ++应用程序和它使用的Visual Studio 2010 C#组件,但我不确定这是否可行。

我尝试从Visual Studio 6.0启动应用程序并附加到我的Visual Studio 2010组件解决方案中的该进程( Application.exe ),但是当我转到附加到进程( Application.exe )时,它显示为灰色。 我尝试将Attach To:切换为Native但这不允许我附加到此进程。 我的Application.exe仍然在窗口中显示为灰色。

有可能这样做,如果是这样的话怎么样?

一个进程只能附加一个调试器,这就是选择灰显的原因。 你几乎没有使用VS6调试器,它对托管代码一无所知。 你必须从VS2010调试它。 右键单击C#项目,Properties,Debug。 选择“启动外部程序”并选择您的C ++ .exe。 勾选“启用非托管代码调试选项”。

在C#代码中设置断点,然后按F5启动.exe。 一旦C ++代码加载DLL,断点指示器就会变为稳定。 尽管您使用的是上个世纪的.pdb,但也可能调试C ++代码。 您不能单步从托管代码到C ++代码,您必须设置断点。

您不能将两个不同的调试器附加到同一进程。

相反,您只能将它附加到VS2010,但将其作为托管和本机附加。

暂无
暂无

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

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