windbg相关内容
我有一个在64位计算机上的wow64环境中运行的32位.Net 4.0应用程序. 应用程序遇到错误,我使用C:\ Windows \ SysWOW64 \ taskmgr.exe中存在的32位taskmanager进行了转储 我正在使用32位Windebugger分析此转储.我加载了以下dll. 1).loadby sos CLR 2).从客户端计算机加载mscordacw
..
我正在尝试为我编写的应用程序调试转储文件. 我在WinDbg中添加了以下符号路径 这将开始分析,然后由于找不到符号而失败. 当我查看C:\ MyServerSymbols时,我看到以下内容 解决方案 在运行!analyze -v .symfix 和 .reload 命令.>
..
我遇到了生产CPU问题,经过几天的常规活动后,CPU突然开始达到峰值.我已经保存了转储文件并运行!runaway命令来获取耗时最高的线程列表.输出如下: 用户模式时间 线程时间 21:110 0天10:51:39.781 19:f84 0天10:41:59.671 5:cc4 0天0:53:25.343 48:74 0天0:34:20.140 47:1670 0天0:34:09.
..
如其他提到的问题,我想启动 Windbg ,打开转储,并启动一些命令( .load pykd.pyd 和!py heap_stat.py ). 我认为这很容易,但是即使启动 Windbg 并打开故障转储似乎也不那么容易,如从以下不成功的示例中可以看到的那样: Prompt> windbg.exe/?提示> windbg.exe-帮助提示> windbg.exe E:\ Bugs \ pr
..
在Windbg中寻求SOS扩展命令!BPMD的帮助(即键入!help BPMD )会导致文本,其中包含除其他外的说明,介绍了如何分解为通用类型的方法.内容如下: !BPMD与泛型类型同样适用.在泛型上添加断点类型在所有已经JIT限定的通用方法上设置断点,并设置未决将来将进行JIT-ted的任何实例的断点.泛型示例:给定以下两类:类别G3{...公共空白F(T1 p1,T2
..
如何才能在WinDGB中设置断点以查看对 GC.Collect()的调用?我已经尝试过 bp clr!SVR :: GCHeap :: GarbageCollect ,但是它不起作用... 我正在使用.NET 4.5.1. 解决方案 没关系!我刚刚想通了: bp clr!WKS :: GCHeap :: GarbageCollect
..
在继续一些windbg教程时,我注意到一些使用 k 命令的调用栈都采用这种格式,特别是我的 Child-SP RetAddr呼叫站点 其他在线资源,例如 CodeProject 让 k 命令以这种格式吐出信息 Child-EBP RetAddr呼叫站点 我很困惑为什么我的输出与其输出之间存在差异,以及真正含义是什么. 解决方案 这取决于所使用的调用约定.某些函数分配了局部变
..
在进行事后调试时,是否可以在内核转储中切换到特定进程的用户模式? 我记得使用.process命令进行实时调试时会这样做. 解决方案 .process 也可以在内核转储中使用.首先,您可以使用 找到您的流程 !process 0 0 myprocess.exe 然后使用切换到该过程 .process
其中
是 PROCESS 之后
..
在尝试使用WinDbg跟踪UWP C#/XAML存储项目中的致命空指针语言异常(c000027b)时,由于缺少Microsoft.NET.CoreRuntime的SOS调试范围,我无法到达CLR Exception对象.我找不到匹配的sos.dll.我想念什么? 注意:应用程序崩溃是可重现的,但仅在未调试时才会发生.因此,不幸的是,在这种情况下,在Visual Studio调试器下运行项目不
..
我有一个从托管应用程序创建的转储.我正在使用SOS/SOSEX扩展来简化我的转储分析.我想列出所有托管线程的调用堆栈,就像我们对本机应用程序进行〜* kb 一样.我们该怎么做? 解决方案 使用
..
我使用WinDbg,我想获取异常详细信息.借助!dumpheap -type Exception 命令获取转储中的异常列表,但是如何访问这些异常详细信息? 000007fef84e1298 1160 System.StackOverflowException000007fef84e1220 1160 System.OutOfMemoryException000007fef84e1388 2 3
..
我正在使用sos.dll和windbg来分析w3wp.exe转储.perfmon中显示了每秒出现大量的.Net CLR异常,我正在尝试对此进行调查.我尝试执行!dumpheap -stat -type异常.但这是否显示在我进行转储的实例上抛出的异常,还是显示所有已创建的异常对象实例?可以创建异常对象实例而不会引发该异常. 有没有办法只获取抛出的异常? 解决方案 您使用了错误的工具.安
..
我遇到了IE7挂起访问我的Web应用程序的情况.基于George V. Reilly ,我安装了WinDbg以下载IE符号,设置Process Explorer以使用这些符号,然后使用Process资源管理器以获取挂起线程的堆栈跟踪. 我在下面粘贴了堆栈跟踪.是不是更熟悉IE内部的人对正在发生的事情有想法,或者对如何进行此工作有建议? ntkrnlpa.exe!KiUnexpected
..
我正在分析一个显示奇怪的转储:!heap -x -v hexadecimal_address和!heap -flt s size_of_block 命令之间似乎存在矛盾. 我正在询问悬空指针. 在此转储中,该悬挂指针恰好是:0x0bdd00c0 要检索有关堆内存块的信息,请使用!heap -x -v 0bdd00c0返回 Entry User Heap
..
我正在使用windbg,使用在互联网上某个地方找到的脚本来调查转储文件. 该脚本启动了两个命令:一个用于确定转储中存在的所有符号(至少我认为是这样),另一个用于显示所有变量的内存地址和类型. 第一个命令:x /2 *!* 结果包含以下条目: 0042da68 !CMap
..
我的应用程序(可执行文件)在远程计算机上崩溃.我无权访问该计算机,因此我请求了通过任务管理器生成的转储.使用WinDbg,在执行命令!analyze -v时,我可以看到以下文本 EXCEPTION_RECORD: (.exr -1) ExceptionAddress: 0000000000000000 ExceptionCode: 80000003 (Break instruction e
..
平台是Windows 7 SP1. 我最近花了一些时间调试由于代码将无效参数传递给“安全" CRT函数之一而导致的问题.结果,我的应用程序立即中止,没有任何警告或任何警告-甚至没有崩溃对话框. 起初,我试图通过将Windbg附加到我的应用程序来解决这个问题.但是,当崩溃发生时,代码被破解为Windbg时,几乎每个线程都被杀死,除了Windbg必须攻入的一个线程.到底有什么问题没有任何线
..
通常,我需要始终以相同的方式调查转储文件,并且我想使它自动化。我正在使用Windbg作为工具,并且正在考虑使用Windbg脚本。 我已经使用PYKD进行了一些首次尝试,但是我不喜欢太多的开销,所以我选择了标准的Windbg脚本,但这真是一场噩梦,让我告诉你我想做什么: 0:001> kb #RetAddr:给孩子的Args:呼叫站点 00 00007ffc`26272685:ff
..
我无法获得使用任务管理器(32或64位)或Process Explorer创建的转储文件,以在WinDBG或Visual Studio 2015中提供有用的结果,而直接从VS编写的转储在这两种方法中均表现出色。我需要任务管理器转储才能工作,以便可以分析最终用户发送的转储文件。 我已将问题简化为在VS中创建的最简单的Win32应用程序2015 C ++,使用故意的NULL指针写入会导致异常。如
..
我遇到了一个错误,但是无法创建进程转储。我创建了一个全内存转储的系统。如何使用它提取进程转储? Windows 。 解决方案 您不能。通常,属于您进程的某些内存段可能会被调出页面,而不驻留在物理内存中。这意味着使用完整的内核内存转储并不能保证重建进程地址空间。 在许多情况下,您可以从内核转储中提取有关进程的有用信息。但是,有两个限制: 可以调出内存,就像我已经提到的那样。
..