问题标签 [windbg]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - __vftptr 为 NULL
我们收到了来自客户站点的故障转储。我看到在 nstack 上的一个结构中,__vfptr 是 NUL。
它是否总是指向有问题的条件(内存溢出,删除对象两次......)或者是否存在此指针可以为空的情况。
com - 我可以在 windbg 中显示 GUID 吗?
我正在尝试调试一些 COM 组件,并希望在对 CoCreateInstance 的调用中跟踪 CLSID 和 IID。
我不确定如何在 windbg 中显示 GUID。任何指针。
windbg - windbg:命令输出到文本文件
如何将 WinDbg 中的命令输出保存到文本文件?
visual-studio - 调用栈和反汇编疑问
三个疑惑 1)假设我得到的调用堆栈如下
现在每个函数末尾提到的字节是什么?就像第一个语句一样,什么是 0x28 字节。
2) 如何在 VS 的 windows 系统 dll 上设置断点?在windbg中,我可以搜索windows系统dll的特定功能
使用此命令,我可以获得此函数的地址并可以放置断点。我可以在 Visual Studio 中做同样的事情吗?
3) 我没有 dll 的符号文件。我在反汇编中得到的调用堆栈是
__imp__
上面的调用堆栈中有什么?这是否意味着这个 windows 函数与其他一些 dll 挂钩?
windbg - 如何阻止 windbg 成为交互式调试器?
在 vista/win7 上撤消windbg -I的正确方法是什么?
是否像删除 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug 中的注册表项一样简单?
assembly - 如何从windbg中的函数获取返回值?
我正在尝试调试一些 win32API,例如返回句柄的 Createthread。如何获取windbg中的返回值?
我做了一些研究,发现返回值通常存储在 EAx 寄存器中。
如果我在 CreateThread 上放置断点,那么我可以进入 Createthread 的程序集,最终我将点击 ret 语句,这意味着 Createthread 正在返回。
此时我应该检查 EAX 寄存器的值以获取 HANDLE 值还是其他方式?
debugging - WinDbg 使用已知模块
我正在调试一些 Windows API 和堆栈跟踪显示Unloaded_hext.dll
。我找不到这个 DLL。即使没有符号,WinDbg 也会输出这个 DLL 名称。进程监视器无法找到此 dll。
为什么以“卸载”为前缀?这是由 WinDbg 完成的还是有什么技巧?
在运行lm
命令时,我可以hext.dll
在卸载模块部分看到。但是,如果它被卸载,那么为什么它会被堆栈跟踪显示?
memory-management - 我在 WinDbg 中获得了一个大型托管对象的地址,接下来呢?
我创建了一个高内存利用率转储并使用 !dumpheap -stat 和 !dumpheap -mt 我得到了两个 30 MB 的大字符串通用列表的地址。
我想了解更多关于这些列表的信息。它们包含什么或哪段代码正在使用它们。
有没有办法找到它们?
0:000>!do 2b370038 名称:System.Object [] MethodTable:71e240bc EEClass:71c0da54 大小:33554448(0x2000010)字节数组:排名 1,元素数 8388608,类型 CLASS 元素类型:System.Collections.Generic.List` 1[[System.String, mscorlib]] 字段:无
.net - 使用 Visual Studio 和 WinDbg 服务器进行远程调试
是否可以将 WinDBG 用作服务器(而不是 Visual Studio 远程调试器)并使用 Visual Studio 连接到它?
debugging - StackOverflow 和进程关闭后的 Windbg 线程 ID
使用 ADPlus(在故障转储模式下)生成 .dmp 文件。未处理异常的最终序列(产生完整的内存转储文件)是......
第一次机会 DLL 卸载:包含线程 ID,但不包含 StackOverflowException(我不希望它出现,因为此时尚未引发异常)。
第一次机会 Stackoverflow:包含线程 ID,但不包含 StackOverflowException。
第一次机会进程关闭(关闭):包含 StackOverflowException 但不包含线程 ID。
???
有没有办法通过配置 ADPlus 或通过在 Windbg 中运行命令来捕获异常并访问线程 ID?
作为对 Magnus 的回应,如果线程 ID 不可用,是否有一些有用的信息?运行 !threads 返回一些信息,但没有线程 ID 和异常,似乎没有其他地方可以从那里去。在这种情况下,运行 !clrstack 似乎比运行 !threads 更有用。