在Visual Studio 2008/2010中同时调试托管代码与非托管代码.
时间:2010-10-12 来源:不及格的程序员-八神
作者:不及格的程序员-八神
在vs2010中默认不支持混合型调试,需要手动设置项目的属性.成功之后就可以在调试环境中同时断点托管代码与win32的c++代码了.
下面图片展示如何设置托管项目与win32项目的属性.
另外利用vs2010也可以附加到已经运行的应用程序,无论是win32程序还是托管程序.
通过菜单中的工具->附加到进程,在调试代码类型中,同时选中托管与本机类型,这样就可以调试iis进程(aspnet_wp.exe)中的托管代码与在平台调用加载的win32 dll库了(最好将dll库的pdb文件也一同放到bin目录中.)
.如下图所示:
前面介绍的调试方法也有不足,目前vs调试器只能显示出寄存器的值,而不能修改,如果想修改的话我们可以借助另一个调试工具windbg.
通过在windbg中附加调试托管程序或win32程序时,设置指符号路径后,再打托管代码/c++ 源码,在相应行中设置断点就可以调试了,同时也可以修改寄存器的值.
总结:除非真的需要,一般使用visual studio 就可以满足在软件调试中遇到的大部分问题,它使用方便.而windbg需要各种命令配合,不过功能非常强大.
相关阅读 更多 +