windbg相关内容

调试在64位环境中运行的32位应用程序

我有一个在64位计算机上的wow64环境中运行的32位.Net 4.0应用程序. 应用程序遇到错误,我使用C:\ Windows \ SysWOW64 \ taskmgr.exe中存在的32位taskmanager进行了转储 我正在使用32位Windebugger分析此转储.我加载了以下dll. 1).loadby sos CLR 2).从客户端计算机加载mscordacw ..
发布时间:2021-04-29 20:24:24 C#/.NET

WinDbg Windows符号

我正在尝试为我编写的应用程序调试转储文件. 我在WinDbg中添加了以下符号路径 这将开始分析,然后由于找不到符号而失败. 当我查看C:\ MyServerSymbols时,我看到以下内容 解决方案 在运行!analyze -v .symfix 和 .reload 命令.> ..
发布时间:2021-04-29 20:24:18 其他开发

WinDbg失控命令输出说明

我遇到了生产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. ..
发布时间:2021-04-24 21:05:35 其他开发

如何使用Windbg打开转储并从命令提示符处启动一些Windbg命令?

如其他提到的问题,我想启动 Windbg ,打开转储,并启动一些命令( .load pykd.pyd 和!py heap_stat.py ). 我认为这很容易,但是即使启动 Windbg 并打开故障转储似乎也不那么容易,如从以下不成功的示例中可以看到的那样: Prompt> windbg.exe/?提示> windbg.exe-帮助提示> windbg.exe E:\ Bugs \ pr ..
发布时间:2021-04-23 19:36:58 其他开发

使用通用类型的类在WINDBG SOS中设置断点

在Windbg中寻求SOS扩展命令!BPMD的帮助(即键入!help BPMD )会导致文本,其中包含除其他外的说明,介绍了如何分解为通用类型的方法.内容如下: !BPMD与泛型类型同样适用.在泛型上添加断点类型在所有已经JIT限定的通用方法上设置断点,并设置未决将来将进行JIT-ted的任何实例的断点.泛型示例:给定以下两类:类别G3{...公共空白F(T1 p1,T2 ..
发布时间:2021-04-22 19:42:13 其他开发

如何打破垃圾收集?

如何才能在WinDGB中设置断点以查看对 GC.Collect()的调用?我已经尝试过 bp clr!SVR :: GCHeap :: GarbageCollect ,但是它不起作用... 我正在使用.NET 4.5.1. 解决方案 没关系!我刚刚想通了: bp clr!WKS :: GCHeap :: GarbageCollect ..
发布时间:2021-04-22 19:41:23 其他开发

儿童EBP vs儿童SP

在继续一些windbg教程时,我注意到一些使用 k 命令的调用栈都采用这种格式,特别是我的 Child-SP RetAddr呼叫站点 其他在线资源,例如 CodeProject 让 k 命令以这种格式吐出信息 Child-EBP RetAddr呼叫站点 我很困惑为什么我的输出与其输出之间存在差异,以及真正含义是什么. 解决方案 这取决于所使用的调用约定.某些函数分配了局部变 ..
发布时间:2021-04-21 19:07:47 其他开发

在内核转储中切换到用户堆栈

在进行事后调试时,是否可以在内核转储中切换到特定进程的用户模式? 我记得使用.process命令进行实时调试时会这样做. 解决方案 .process 也可以在内核转储中使用.首先,您可以使用 找到您的流程 !process 0 0 myprocess.exe 然后使用切换到该过程 .process 其中 是 PROCESS 之后 ..
发布时间:2021-04-21 19:07:40 其他开发

Microsoft.NET.CoreRuntime的SOS调试扩展

在尝试使用WinDbg跟踪UWP C#/XAML存储项目中的致命空指针语言异常(c000027b)时,由于缺少Microsoft.NET.CoreRuntime的SOS调试范围,我无法到达CLR Exception对象.我找不到匹配的sos.dll.我想念什么? 注意:应用程序崩溃是可重现的,但仅在未调试时才会发生.因此,不幸的是,在这种情况下,在Visual Studio调试器下运行项目不 ..
发布时间:2021-04-18 19:46:02 C#/.NET

获取堆栈中异常的堆栈跟踪

我使用WinDbg,我想获取异常详细信息.借助!dumpheap -type Exception 命令获取转储中的异常列表,但是如何访问这些异常详细信息? 000007fef84e1298 1160 System.StackOverflowException000007fef84e1220 1160 System.OutOfMemoryException000007fef84e1388 2 3 ..
发布时间:2021-04-01 21:38:08 C#/.NET

Sos.dll和windbg获取引发的异常

我正在使用sos.dll和windbg来分析w3wp.exe转储.perfmon中显示了每秒出现大量的.Net CLR异常,我正在尝试对此进行调查.我尝试执行!dumpheap -stat -type异常.但这是否显示在我进行转储的实例上抛出的异常,还是显示所有已创建的异常对象实例?可以创建异常对象实例而不会引发该异常. 有没有办法只获取抛出的异常? 解决方案 您使用了错误的工具.安 ..
发布时间:2021-04-01 20:51:01 C#/.NET

IE挂有100%CPU/获得了堆栈跟踪

我遇到了IE7挂起访问我的Web应用程序的情况.基于George V. Reilly ,我安装了WinDbg以下载IE符号,设置Process Explorer以使用这些符号,然后使用Process资源管理器以获取挂起线程的堆栈跟踪. 我在下面粘贴了堆栈跟踪.是不是更熟悉IE内部的人对正在发生的事情有想法,或者对如何进行此工作有建议? ntkrnlpa.exe!KiUnexpected ..
发布时间:2020-11-30 01:44:29 其他开发

!heap -x -v和!heap -flt s之间存在矛盾

我正在分析一个显示奇怪的转储:!heap -x -v hexadecimal_address和!heap -flt s size_of_block 命令之间似乎存在矛盾. 我正在询问悬空指针. 在此转储中,该悬挂指针恰好是:0x0bdd00c0 要检索有关堆内存块的信息,请使用!heap -x -v 0bdd00c0返回 Entry User Heap ..
发布时间:2020-11-22 20:51:00 其他开发

如何识别STATUS_INVALID_CRUNTIME_PARAMETER异常

平台是Windows 7 SP1. 我最近花了一些时间调试由于代码将无效参数传递给“安全" CRT函数之一而导致的问题.结果,我的应用程序立即中止,没有任何警告或任何警告-甚至没有崩溃对话框. 起初,我试图通过将Windbg附加到我的应用程序来解决这个问题.但是,当崩溃发生时,代码被破解为Windbg时,几乎每个线程都被杀死,除了Windbg必须攻入的一个线程.到底有什么问题没有任何线 ..
发布时间:2020-11-01 21:29:08 其他开发

Windbg脚本将命令结果分配给变量

通常,我需要始终以相同的方式调查转储文件,并且我想使它自动化。我正在使用Windbg作为工具,并且正在考虑使用Windbg脚本。 我已经使用PYKD进行了一些首次尝试,但是我不喜欢太多的开销,所以我选择了标准的Windbg脚本,但这真是一场噩梦,让我告诉你我想做什么: 0:001> kb #RetAddr:给孩子的Args:呼叫站点 00 00007ffc`26272685:ff ..
发布时间:2020-10-27 00:45:42 其他开发

WinDBG可以与从Visual Studio 2015保存的转储一起使用,但不能与任务管理器一起使用。显示异常代码“未找到”;

我无法获得使用任务管理器(32或64位)或Process Explorer创建的转储文件,以在WinDBG或Visual Studio 2015中提供有用的结果,而直接从VS编写的转储在这两种方法中均表现出色。我需要任务管理器转储才能工作,以便可以分析最终用户发送的转储文件。 我已将问题简化为在VS中创建的最简单的Win32应用程序2015 C ++,使用故意的NULL指针写入会导致异常。如 ..
发布时间:2020-10-27 00:44:34 C/C++开发

从全内存转储中提取进程转储

我遇到了一个错误,但是无法创建进程转储。我创建了一个全内存转储的系统。如何使用它提取进程转储? Windows 。 解决方案 您不能。通常,属于您进程的某些内存段可能会被调出页面,而不驻留在物理内存中。这意味着使用完整的内核内存转储并不能保证重建进程地址空间。 在许多情况下,您可以从内核转储中提取有关进程的有用信息。但是,有两个限制: 可以调出内存,就像我已经提到的那样。 ..
发布时间:2020-10-27 00:39:23 其他开发