我仍然是C的相对新手,我遇到了第三方DLL的问题,我从我的本机C DLL静态链接到.我正在使用Visual Studio 2012来调试我的DLL.
(FWIW,第三方DLL是Sybase Open Client,我正在通过我编写的C#可执行文件来调试我的DLL,它可以动态加载我的C DLL.)
我已经使用Visual Studio进入反汇编并查看第三方DLL的寄存器和内存使用情况. Visual Studio给了我很多关于我的过程中发生了什么的很好的信息,但我觉得可能有更多的信息比我看到的更多,也许是一种更简单或更有效的方法.
我已经读过WinDbg是一个非常强大的工具,但是学习使用它需要花费大量的时间和精力.我的问题是:学习使用WinDbg是值得的,还是Visual Studio中的调试工具会给我几乎相同的信息?
解决方法
My question is: is it worth the effort to learn to use WinDbg,or will
the debugging tools in Visual Studio give me pretty much the same
information?
这真的取决于你正在做什么样的编程.
WinDBG允许您查看操作系统内部的结构.它允许您查看整个系统中的线程和进程,并调试在OS内核本身(例如驱动程序)中运行的代码.编写脚本以挖掘某些信息有很大的能力,或者,我相信,甚至可以编写在WinDBG中运行的插件来执行某些任务.
对于VS型调试器,大多数情况要么困难,要么不可能.
对我或其他任何人来说,几乎不可能告诉你是否应该学会使用WinDBG.它肯定会对你有所了解,但是完全有可能在你的生活中花费很长时间而不需要它.