问题标签 [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.

0 投票
3 回答
5651 浏览

debugging - 启动 windbg 用户模式远程调试会话的最佳技术

您最喜欢启动 windbg 用户模式远程调试会话的技术是什么?为什么你更喜欢这种技术而不是其他技术?(优点缺点)

至少有四种不同的方法可以使用 windbg 进行用户模式远程调试,如 windows 帮助文件的调试工具的“远程调试”部分所述。

  1. 在目标上运行应用程序,然后从主机 windbg 附加到它
  2. 让主机 windbg 使用 remote.exe 在目标上启动应用程序
  3. 让“智能客户端”主机 windbg 通过在目标上运行的进程服务器在目标上启动应用程序
  4. 使用选项“-server”在目标机器上运行windbg实例以自动启动服务器,然后从第二台机器连接到服务器。
0 投票
3 回答
7373 浏览

multithreading - 解释 Windows Minidump 中的堆栈

作为一个刚刚开始学习复杂的计算机调试的人,对于我的生活,我无法理解如何阅读 Windbg 中转储的堆栈文本。我不知道从哪里开始如何解释它们或如何去做。任何人都可以为这个可怜的灵魂提供方向吗?

即(实际上我手头上唯一的垃圾场)

我知道问题与 Nvidia 显示驱动程序有关,但我想知道的是如何实际读取堆栈(例如,什么是 b69dd8f4?):-[

0 投票
6 回答
2501 浏览

winapi - 诊断 Win32 程序中的死锁

调试由于 Win32 生产过程中的死锁而导致的明显挂起的步骤和技术是什么。我听说 WinDbg 可以用于此目的,但您能否提供有关如何实现此目的的明确提示?

0 投票
4 回答
4195 浏览

.net - IIS 中 .NET 代码的堆栈溢出,但 Winforms 中没有

所以我有一个令人讨厌的堆栈溢出,我在过去 8 小时左右一直试图追踪/解决,我正处于我认为我需要建议的地步。

细节:有趣的是,当在我们的常规 winforms 应用程序的上下文中调用时,这段代码运行良好——但我的任务是编写我们软件的基于 Web 的版本,当从在 IIS 上运行的 ASPX 页面。我做的第一件事是附加并尝试通过 Visual Studio 进行正常的 .NET 调试。在异常点,调用堆栈似乎相对较浅(我们的代码大约 11 帧深),我找不到堆栈溢出的常见嫌疑人(错误的递归、自调用构造函数、异常循环)。

所以我放弃了自己去打破windbg和SOS——我知道这对这类事情很有用,尽管我自己的经验有限。经过几个小时的闲逛,我想我有一些有用的数据,但我需要一些帮助来分析它。

首先是一个!dumpstack,我在堆栈溢出即将下降之前被破坏了。

那里有很多东西,但在我的(诚然有限的)堆栈分析知识中没有任何东西表明循环。我认为下一节可能有一些价值。这是我在同一断点处得到的 !dumpstackobjects :

^^ 我不得不剪掉上面的一些内容以使这篇文章适合,但想象一下它会继续这样下去^^

请忽略我们自定义代码的详细信息。这一切对我来说似乎都是多余的,但我不是堆栈专家。上面列出的大多数堆栈对象(有 1500 多个)不是函数参数,所以我认为它们不属于那里。这是在堆栈上生成所有这些项目的代码类型的示例(运行大量这样的代码):

我也不是 VB 专家(这段代码来自我通常不使用的应用程序的不同部分),但是这样的代码用东西填满堆栈是否正常?如果有人有任何见解,或者甚至可以向我指出一些资源的方向以及有关此类东西的信息,将不胜感激。感谢您的关注!

0 投票
4 回答
9467 浏览

.net - 从外部触发 .NET 垃圾回收

有没有办法从另一个进程或 WinDBG 内部触发 .NET 进程中的垃圾收集?

当您跨过本机/托管边界时,有托管调试助手会强制收集,并且AQTime似乎有按钮建议它这样做,但我找不到任何有关如何执行此操作的文档。

0 投票
3 回答
3273 浏览

windows - 从故障转储中查找 GDI/用户资源使用情况

我有一个应用程序的故障转储,据说该应用程序正在泄漏 GDI。该应用程序在 XP 上运行,我可以毫无问题地将其加载到 WinDbg 中查看它。以前我们使用Gdikdx.dll 扩展来查看 Gdi 信息,但 XP 或 Vista 不支持此扩展。

有没有人有任何指针可以在 WinDbg 中查找 GDI 对象的使用情况。

或者,我确实可以访问失败的程序(及其压力测试套件),因此如果您知道 XP 和 Vista(或 Windows 2000,尽管这不是我们的目标)的任何“实时”调试工具,我可以在正在运行的系统上重现.

0 投票
1 回答
519 浏览

debugging - 你如何解决在 Vista 上崩溃的 Windbg Logger?

我想使用Microsoft Debugging Tools for Windows附带的Logger工具。但是,在 Vista 上,即使使用内置的 Vista 应用程序也会崩溃:

或者

如果我从具有或不具有管理员权限的命令提示符运行该工具,则会出现此问题。我使用的是 3.01 版(2008 年 3 月 20 日)。

Logger 输出窗口显示的最后一件事是“启用详细日志”。

如果我附加一个调试器,我会看到以下调用堆栈发生了“访问冲突写入位置 0x000000”错误:

有人遇到过这个问题并知道如何解决吗?

0 投票
8 回答
18727 浏览

visual-studio - 为什么使用 WinDbg 与 Visual Studio (VS) 调试器?

使用WinDbg与 Visual Studio 调试器的主要原因是什么?

它通常用作 Visual Studio 调试器的完全替代品,还是在需要时更多地使用。

0 投票
1 回答
1142 浏览

.net - 在混合的托管/非托管进程中转储 CCW 和 RCW

我有一个混合的托管/非托管环境(Visual Studio 和 ReSharper),我怀疑 CCW 或 RCW 泄漏。有没有办法转储所有当前分配的包装器并识别它们的源/目标?我有 WinDbg、SOS 和 SOSEx,所以我可以使用 !syncblk 命令查看 RCW 和 CCW 的总数。我只想查看对象,所以我可以对它们调用 !gcroot 并检查嫌疑人。

0 投票
13 回答
22178 浏览

c++ - 你最喜欢的 Windbg 提示/技巧是什么?

我开始意识到 Windbg 是一个非常强大的 Windows 平台调试器,我偶尔会学到一些关于它的新东西。Windbg 用户可以分享他们的一些疯狂技能吗?

ps:我不是在寻找一个漂亮的命令,这些可以在文档中找到。分享一些无法想象可以用 windbg 完成的事情的技巧怎么样?例如,当进程在windbg 下运行时,某种方式可以生成有关内存分配的统计信息。