Tag: windbg

WinDbg的好教程?

有很好的教程来展示如何使用WinDbg ?

.NET WCF w3wp本地内存泄漏和加载程序堆中的大小为0的18kdynamic程序集

我们的WCF服务显示了大量内存使用的实例,所以我们花了一个完整的内存转储来确定问题。 Operating System Windows Server 2008 R2Service Pack 1 Number Of Processors 4 Process Image c:\Windows\System32\inetsrv\w3wp.exe System Up-Time 40 day(s) 09:23:09 Process Up-Time 14 day(s) 11:49:01 .NET 4.0 Processor Type X64 Process Bitness 64-Bit 从DebugDiag报告的问题的直升机视图。 进程是垃圾收集,所以根据警告我不应该信任!heap命令的所有输出。 Gc堆:1.37 GBytes .NETcaching大小为750Mb, 虚拟内存详细信息:虚拟分配:17.45 Gb加载模块:208.68 Mb线程数:25 Mb本地堆积:3.06 Gb(我很关心这个) 从上面的3.02 Gb出现在Heap 0x003f0000 。 我们有很好的stream量,这样1.3 gb Gb的堆大小感觉对我来说是正常的。 此外,我们有32 gb RAM和64位地址空间的机器,所以caching大小750 mb是可以接受的。 […]

如何处理WinDbg中的“SOS版本与您正在debugging的CLR版本不匹配”?

我遇到了一些我的应用程序的问题。 这是在Windows 2003 Server(x86)的IIS6下运行的基于wcf的应用程序: 在事件日志中,我从“W3SVC-WP”源(EventID = 2262)得到这样的错误: ISAPI 'C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll' reported itself as unhealthy for the following reason: 'Deadlock detected'. 我正在试图弄清楚发生了什么事。 我已经build立了创build这个知识库中描述的孤儿工作进程的转储。 发生死锁时创build一个小型转储。 然后我用这个小转储来试着了解发生了什么。 这是我卡住了。 我运行WinDbg x86,打开我的转储,然后: 0:037> .loadby sos clr 0:037> .sympath SRV*c:\temp\symbols*http://msdl.microsoft.com/download/symbols Symbol search path is: SRV*c:\temp\symbols*http://msdl.microsoft.com/download/symbols Expanded Symbol search path is: srv*c:\temp\symbols*http://msdl.microsoft.com/download/symbols 0:037> !clrstack The version of SOS does not match the version […]

windbg:命令输出到文本文件

如何将WinDbg中的命令输出保存到文本文件?

开始学Windbg

在被一个我根本没有debugging知识的问题困扰之后,我刚刚决定学习如何使用Windbg。 我唯一的问题:我不知道从哪里开始:-(我不是一个真正的WinApi-Guy,通常使用的语言将Windows API抽象出来。 所以我只是想知道:什么是最好的源(书,网站)学习Windbg的人谁知道编程,但没有太多关于Windows的内心深处? (是的,我每天都会读新的东西:))

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

我已经认识到,Windbg是Windows平台的一个非常强大的debugging器,我偶尔会学到一些新的东西。 Windbg的用户可以分享一些疯狂的技能吗? ps:我不是在寻找一个漂亮的命令,那些可以在文档中find。 如何分享有关做一些别人无法想象的事情的提示可以用windbg来完成? 例如,在windbg下运行一个进程时,可以使用某种方法来生成有关内存分配的统计信息。

为什么使用WinDbg与Visual Studio(VS)debugging器?

使用WinDbg与Visual Studiodebugging器的主要原因是什么? 它通常用作Visual Studiodebugging器的完全替代品,或者更多用于需要时。

如何中止WinDbg中的长时间操作?

WinDbg通常会进入*繁忙状态*执行操作。 通常这是由于一些错误,我试图dt some_variable_itll_never_find或设置一个断点的地方没有符号或1000年的其他错误,我在这个工具周围摸索。 有没有办法取消当前的操作?

xperf WinDBG C#.NET 4.5.2应用程序 – 了解进程转储

在沉重的负载下,我们的应用程序正在使一个强大的服务器达到100%的CPU使用率。 读取进程转储,看看线程,其中一些是10分钟。 当使用CLRStack时,他们没有给我任何的洞察力。 !失控给了我: 0:030> !runaway User Mode Time Thread Time 53:2e804 0 days 0:10:04.703 30:31894 0 days 0:07:51.593 33:47100 0 days 0:07:24.890 42:11e54 0 days 0:06:45.875 35:35e18 0 days 0:06:07.578 41:54464 0 days 0:05:49.796 47:57700 0 days 0:05:45.000 44:3c2d4 0 days 0:05:44.265 32:3898c 0 days 0:05:43.593 50:54894 0 days 0:05:41.968 51:5bc58 0 days 0:05:40.921 […]

这是“不应该发生”崩溃的AMD Fusion CPU的错误?

我的公司已经开始有很多客户打来电话了,因为我们的程序在他们的系统上发生访问冲突。 SQLite 3.6.23.1发生崩溃,我们将其作为应用程序的一部分发布。 (我们发布了一个自定义构build,以便使用与应用程序其余部分相同的VC ++库,但是这是股票SQLite代码。) 当pcache1Fetch执行call 00000000时发生崩溃,如WinDbg调用堆栈所示: 0b50e5c4 719f9fad 06fe35f0 00000000 000079ad 0x0 0b50e5d8 719f9216 058d1628 000079ad 00000001 SQLite_Interop!pcache1Fetch+0x2d [sqlite3.c @ 31530] 0b50e5f4 719fd581 000079ad 00000001 0b50e63c SQLite_Interop!sqlite3PcacheFetch+0x76 [sqlite3.c @ 30651] 0b50e61c 719fff0c 000079ad 0b50e63c 00000000 SQLite_Interop!sqlite3PagerAcquire+0x51 [sqlite3.c @ 36026] 0b50e644 71a029ba 0b50e65c 00000001 00000e00 SQLite_Interop!getAndInitPage+0x1c [sqlite3.c @ 40158] 0b50e65c 71a030f8 000079ad 0aecd680 071ce030 SQLite_Interop!moveToChild+0x2a […]