c++ - WinDbg 可以告诉我什么是 Visual Studio 不能的?

标签 c++ debugging dll visual-studio-2012 windbg

我仍然是 C++ 的新手,我在从我的 native C++ DLL 静态链接到的第三方 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。知道它当然不会对您造成伤害,但您完全有可能在不需要它的情况下度过很长一段时间。

关于c++ - WinDbg 可以告诉我什么是 Visual Studio 不能的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16800611/

相关文章:

C++:是否绝对有必要手动分配内存?

c++ - 将 32 位值转换为 HANDLE

java - 如何在 Eclipse 中的 Java 调试中找到实例构造函数调用?

c# - 如何在VS创建的exe中嵌入引用?

c++ - C DLL 和 Python CTypes - 发布/调试中的不同返回

c++ - C++ 中的 Hashmap 不对元素进行排序?

c++ - Const 容器返回非常量引用

sql-server - 调试存储过程中的查询

php - PHP解析/语法错误;以及如何解决它们

windows - kernel32 是否总是从 System32 加载?