16得票2回答
使用WinDbg和ADPlus帮助捕获StackOverflowException异常

简短版 我需要一个ADPlus脚本,用于在第一次出现StackOverflowException之前进行完整的内存转储,并忽略所有其他异常类型。 日志版本 发布新的ASP.NET代码后,我们开始出现间歇性的StackOverflowExceptions。我们已经查找了自上一次安装以来添加...

16得票2回答
GFlags设置以捕获堆栈损坏(除了Page Heap)?

在一个生产站点上,我们的应用程序反复崩溃,但是无法重现。分析崩溃转储清楚地显示它是堆损坏:崩溃发生在不同的位置,但总是在kernel32!HeapFree/ntdll!RtlpLowFragHeapFree内部访问冲突。Win Dbg !analyze -v还报告了堆损坏。 到目前为止,我们...

16得票5回答
WinDbg在通过网络进行调试时失去连接,目标机器冻结。

我正在尝试使WinDbg通过网络进行调试,但每次在调试器中断(Debug-> Break)后再试图重新开始(Debug-> Go)时,它总是失去连接。然而,如果我从未在调试器中断过,看起来连接在“N”时间段内是稳定的。在此优雅期间,我甚至可以在使用目标系统时在WinDbg中看到调试打印语句。此...

16得票1回答
分析windbg中!threadpool和!threads命令的输出结果

我在四个服务器上生成了转储,并分析了!threadpool和!threads的输出。我注意到大致一致的以下输出: 0:024> !threadpool CPU使用率为0% 工作线程:总计:2 运行中:0 空闲:2 最大限制:200 最小限制:2 队列中的工作请求:0 定时器数目:27 完成端...

16得票4回答
有没有更好的图形界面替代WinDBG?

我偶尔会使用WinDBG分析生产环境中的问题,因为无法安装VS。毫无疑问,它是一个非常强大的工具,但使用它有点麻烦。尽管该产品经常更新,但其图形用户界面仍停留在Win95时代左右,其可用性因此而受到影响。不得不与GUI斗争以按照我想要的方式布局窗口,并且不得不记住所有这些文本命令,这对于现代桌...

15得票3回答
Windbg脚本中的字符串比较

使用Windbg脚本,我想检查任何函数的参数中是否存在特定字符串。0:000> g Breakpoint 0 hit eax=00000001 ebx=00000000 ecx=00422fc6 edx=00000000 esi=03d574e8 edi=00000005 eip=76d...

15得票2回答
何时除以零不是除以零?调试器中的谜题(静态变量问题)

我很困惑,而且我认为我的调试器在骗我。我代码中有以下循环:MyClass::UploadFile(CString strFile) { ... static DWORD dwLockWaitTime = EngKey::GetDWORD(DNENG_SERVER_UPLOAD_LOCK...

15得票2回答
解析一个被抛出的C++异常参数(0xE06D7363)

我有一个崩溃转储文件(我的32位Windows应用程序在客户计算机上崩溃了)。异常代码是0xE06D7363。因此,我从MSDN博客中找到了这篇关于解码异常参数的文章。但是,该文章中的一个方法对我无效:0:000> .exr -1 ExceptionAddress: 753ad36f ...

15得票7回答
对象未被垃圾回收,但不包含gcroots

我们的Web应用程序出现了一个棘手的问题。(Asp.net 2.0 Win server 2008) 尽管我希望它保持在相对静态的水平,但我们网站的内存使用量不断增长(我们有一小部分数据存储在状态中)。 为了找出问题所在,我运行了System.GC.Collect()几次,获取了一份内存转...

15得票4回答
为什么WinDbg、任务管理器和VS调试器报告的线程数量不同?

我的 .Net 3.5 应用程序在运行时,Windows 任务管理器显示我的应用程序有16个线程。我为该进程收集了一个内存转储,并使用 WinDbg/SOS 打开了它。 运行 !threads 命令会显示我有:ThreadCount: 456 UnstartedThread: 0 Backgr...