问题标签 [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 投票
1 回答
473 浏览

wpf - 如何从 SOS 评估 silverlight/WPF 中的依赖属性?

这个问题相当简单——我正在尝试使用 sos 调试 silverlight 应用程序中的内存泄漏,我能够使用 !gcroot 获得一些好的信息来确定哪些对象具有对应该被清除的对象的开放引用;但在这些情况下,它们往往是核心 UI 元素(如网格和故事板),如果无法查看它们的依赖属性值(如名称),我无法真正区分它们。尝试使用 !dumpobj 查看依赖属性对我来说简直是天方夜谭,它们都是相互引用的静态类(即属性),我最终只能绕圈子。在任何时候,我都无法在任何地方找到依赖属性的单个实际值。

我在谷歌上搜索了很多,但只能找到其他人在问这个问题,或者猜测没有得到答案。 http://blogs.msdn.com/tess/archive/2008/09/16/qa-reader-emails-about-net-memory-leaks-and-random-questions.aspx就是这样一个没有答案的页面。

0 投票
2 回答
3780 浏览

c# - Windbg help -> 如何在这个调用栈中读取代码?

我有一个我制作的 Windows 服务的转储。例外是我的代码无法移动文件(出于某种原因)。现在,在我的代码中有很多地方可以在文件系统中移动文件。因此,使用 Windbg,我试图查看发生异常的代码。

这是我的 !clrstack 转储..

现在,这有很大帮助...

所以我找出了无法移动的文件。科尔。但我只想查看调用 File.Move(..) 的 MyClass.Foo.DoSomeStuffInHere(System.String) 方法中的代码。该方法有很多 File.Move .. 所以我可以放 try / catches / debug / trace 信息.. 但我希望通过使用 Windbg 来帮助找到这个问题来提高效率。

有什么想法吗?

0 投票
5 回答
2401 浏览

.net - 如何在 windbg 中找到我的 ReaderWriterLock 的锁持有者(阅读器)

我有一个由于死锁而挂起的 .Net 进程的转储(gui 线程不再响应,我的日志显示某些线程已停止响应)。我已经拍了一张快照,现在正在windbg中查看它,所有线程都在等待最后一个。用 !clrstack -p 查看那个线程的堆栈跟踪,我可以看到它正在尝试获取对 ReaderWriterLock 的写入

我如何知道哪个其他线程持有该锁,以便我可以开始弄清楚死锁是如何发生的?

谢谢

[编辑] .Net1.1 sos.dll 中显然有一个命令 !rwlocks 可以帮助解决这个问题,但 .Net2.0 版本中没有。狩猎继续

0 投票
4 回答
5605 浏览

memory - 我可以从 WinDbg 运行 .NET 垃圾收集吗?

我正在研究为什么托管进程使用大量内存。有没有办法GC.Collect(3)从 WinDbg 运行,以便我可以专注于实际的内存分配?

0 投票
1 回答
1603 浏览

.net - Application.Exit 没有杀死消息泵?

我有线程异常处理程序,它保存异常堆栈跟踪并应该关闭应用程序。我调用 Applicatoin.Exit,但这只会关闭窗口,让应用程序无窗口运行。

我知道,这通常是因为一些后台线程仍在运行。我将windbg附加到无窗口进程,似乎只有两个托管线程,其中一个看起来像gc终结器线程,第二个看起来像消息泵???有人明白这个吗?

调用 Application.Exit 和用户关闭主窗口之间有区别吗?

0 投票
9 回答
1939 浏览

.net - 当前加载的类不断增加 - 内存泄漏

我有一个内存泄漏非常慢的服务。如果我分析 .NET CLR Loading 计数器,我会看到Current Classes Loaded计数器不断增加,并且始终与Total Classes Loaded计数器匹配。这给我的印象是内存泄漏与未释放的资源有关(这只是一个猜测)。

该服务每次执行任务时都会创建新的 appDomain(插件架构)。

我需要找出类名,以便缩小泄漏的原因。我对 WinDbg 不是很精通,但我想知道是否有人可以引导我完成枚举这些Loaded类的步骤。

我确实有源代码,因此我可以在必要时获取符号文件。提前感谢您的帮助!

0 投票
6 回答
550 浏览

c# - 学习 windbg 的功能和优点的最佳资源是什么?

学习 windbg 的功能和优点的最佳资源是什么?我希望能够讨论调查内存问题(句柄、对象)、性能问题等。. .

0 投票
5 回答
2039 浏览

winapi - 使用 Windbg 获取第 3 方模块的列表?

我正在使用 windbg 检查应用程序发送的一些故障转储。我看到的崩溃与将某个第 3 方 DLL 加载到进程中(我怀疑是一个不稳定的 Winsock LSP)之间似乎存在某种关联。为了让这种分析在未来更容易,是否有一个 windbg 脚本可以显示非 Microsoft 模块的列表?这将使崩溃之间的模式对我来说更加明显。我正在使用“lm D sm”,但现在手动浏览列表很痛苦。

谢谢!

0 投票
1 回答
533 浏览

windows - x86:当一个特定的指向字符串的指针被压入堆栈时可能调试中断?

我正在调试一个我没有源代码的第三方 DLL。此 DLL 维护一个字符串池。我想捕获这些字符串之一被传递给函数的最早出现......任何函数......

换句话说,我想检测具有某种格式的指向空终止字符串的指针何时被任何人推入堆栈......并且我想在发生这种情况时执行调试中断。

我知道您可以设置一个“访问中断”断点,该断点将在 CPU 读取/写入/执行特定地址时触发。我想要的是类似于这样:对于每个压入堆栈的字符串,我想针对某种格式对其进行测试,如果匹配,则执行中断。

使用 WinDbg、OllyDb、VS2008 等等……有什么想法吗?

谢谢!

0 投票
4 回答
2848 浏览

windbg - Windows 调试工具:符号代理不代理

我正在尝试使用 Debugging Tools for Windows 中的 symproxy.dll 设置符号代理。当我从调试器发出“.reload /f”时,找不到任何符号文件。看起来 Symproxy 并没有使用 Microsoft 符号服务器来实际获取符号。例如,我在 Wireshark 中什么也看不到。

SYMPROXY.DLL 肯定正在加载——我可以在事件日志中看到一些条目,并且http://my-server/symbols/status返回看起来有效的信息。

据我所知,我已按照文档中的说明进行操作。为什么 symproxy 不去微软的网站?我究竟做错了什么?我需要这个工作,因为我正在调试的机器没有外部访问权限。

运行 symproxy 的机器可以访问 Internet——我经常用它来调试。在注册表中为 symproxy 配置的符号路径看起来是正确的。它不必通过代理即可访问 Internet,我也在注册表中进行了配置。

当我在另一个盒子上使用 !sym 嘈杂时,它会联系 symproxy,但只是说“找不到文件”。就像 symproxy 只是为内容提供服务,而不是像它应该做的那样对 MS 符号服务器进行旁观。