WinDbg能告诉我Visual Studio不能做什么?

Joh*_*ant 7 c++ debugging dll windbg visual-studio-2012

我仍然是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中的调试工具会给我几乎相同的信息?

Mat*_*son 4

我的问题是:学习使用 WinDbg 是否值得付出努力,或者 Visual Studio 中的调试工具会为我提供几乎相同的信息吗?

这实际上取决于您正在执行哪种编程。

WinDBG 确实允许您查看操作系统的内部结构。它允许您查看整个系统中的线程和进程,并调试在操作系统内核本身中运行的代码(例如驱动程序)。编写脚本来挖掘某些信息的能力很强,或者,我相信,甚至编写在 WinDBG 中运行的插件来执行某些任务。

对于 VS 类型的调试器来说,大部分工作要么是困难的,要么是不可能的。

对于我或这里的其他人来说,几乎不可能告诉您是否应该学习使用 WinDBG。了解它当然不会给你带来什么坏处,但是你完全有可能在生命中很长一段时间都不需要它。