sos相关内容

理解!地址-托管分配的摘要

我试图了解!地址摘要报告是如何管理分配的。我有以下代码来尝试测试它。我基本上更改了数组的大小,然后附加了winbg来检查结果!地址摘要 static void Main(string[] args) { int size = 2000; var something = new byte[size]; for (int i = 0 ..
发布时间:2022-06-14 09:00:18 C#/.NET

无法在 WinDbg 中加载 SOS

背景:我是 WinDbg 的新手,并试图让它第一次运行.我想检查从托管在 Windows Server 2008 (x86) 上的 IIS 7 中的正在运行的 ASP.NET 4 站点获取并下载到我的本地计算机的内存转储. 我安装了调试工具并首次启动了 WinDbg,打开故障转储.我去了文件|符号文件路径并将路径设置为 *srv*c:\symbols*http://msdl.microsof ..
发布时间:2021-11-26 10:42:06 其他开发

故障转储文件中的主机信息

是否可以获得有关创建转储文件的主机的信息,例如操作系统版本、服务包、.NET 框架版本等. 解决方案 打开转储文件时会自动列出操作系统版本等. 您可以使用 !eeversion 命令获取 .NET 框架版本. 0:000>!eeversion2.0.50727.4952 免费工作站模式SOS 版本:2.0.50727.4952 零售版 要获取加载模块的附加信息,请使用 lm 的详 ..
发布时间:2021-09-25 19:32:04 其他开发

计算对象的大小,使其包括其所有子项和(孙子链)的大小

假设类 A 包含 B 和 C 的实例.B 包含 D、E 和 F,而 C 包含 G、H 和 I 的实例.因此在计算 A 的大小时,我想包括其所有的大小及其子项.当我使用 !dumpheap -stats 命令时,A 的大小似乎并不包括所有包含它的孩子、孙子、孙子. 有什么办法可以在windbg中以这种方式获得A的大小吗? 解决方案 我认为 !objsize 就是你要找的. 但是 ..
发布时间:2021-09-25 19:31:58 C#/.NET

Windbg:psscor4 不起作用

我搜索并尝试了很多东西,但无法让 psscor4 正常工作. 当我调用 !threads 时,我总是得到 请求线程存储失败 我检查的内容如下: 我有一个为 X86 平台编译的 .NET 4 应用程序 我使用的是 Windbg 版本 6.2.9200.16384,X86 版本 我正在使用 Microsoft 当前的 psscor4,它可以正确加载.我正在加载 X86 版本 ..
发布时间:2021-09-25 19:31:26 C#/.NET

Windbg - 如何转储与给定过滤器匹配的字符串

可以使用以下命令转储所有字符串!dumpheap 类型 System.string 如何仅转储或打印那些以特定“字符串"开头或包含特定“字符串"的字符串 示例.我只想查看包含“/my/app/request"的字符串 解决方案 为此使用 sosex 而不是 sos.它有一个 !strings 命令,允许您使用 /m: 选项过滤字符串. ..
发布时间:2021-09-25 19:31:23 其他开发

Windbg 本机调用堆栈跟踪没有意义

我有一个简单的测试程序,导致无限等待锁定. 公共类SyncBlock{}课程计划{公共静态 SyncBlock 同步 = 新 SyncBlock();私有静态无效ThreadProc(){尝试{Monitor.Enter(同步);}捕获(异常){//Monitor.Exit(sync);Console.WriteLine("第三方代码抛出异常");}}static void Main(strin ..
发布时间:2021-09-25 19:30:28 其他开发

!clrstack -p 没有给出调用堆栈中方法的参数值

我们正在尝试使用 windbg 分析 w3wp 内存转储,我们发现 w3wp 进程由于堆栈溢出而崩溃.我加载了 psscor4.dll 并通过发出 !clrstack 获取了调用堆栈.但我也想知道传递给方法的参数.如果我发出“!clrstack -p"或“!clrstack -a",我们将获得对于所有参数和局部变量.任何想法,为什么我们得到而不是参数和局部变量的实际值? ..
发布时间:2021-09-25 19:29:53 其他开发

无法找到运行时 clr.dll 以使用 sos

我有一个简单的控制台应用程序(目标框架 4.5.2): 使用系统;公开课 SosTest{公开课 Foo{公共 Foo(){Console.WriteLine("创建 foo");}}static void Main(string[] args){var n1 = new Foo();var n2 = new Foo();Console.WriteLine("分配的对象");Console.Wr ..
发布时间:2021-09-25 19:29:44 C#/.NET

未能加载数据访问 DLL,0x80004005

0:025>!pe未能加载数据访问 DLL,0x80004005验证 1) 您有最新版本的调试器(6.2.14 或更高版本)2)与您的 mscorwks.dll 版本匹配的文件 mscordacwks.dll 是在版本目录中3) 或者,如果您正在调试转储文件,请验证该文件mscordacwks___.dll 在您的符号路径上.4) 您正在与转储文件相同的架 ..
发布时间:2021-09-25 19:28:55 其他开发

使用 WinDbg 将 Managed Byte[] 的内容写入文件

我有来自生产服务器的故障转储,显示 OutOfMemoryException.异常本身与此处无关. 我碰巧运行了一个 !dso 来查看堆栈对象: 0:042>!dso操作系统线程 ID:0x1014 (42)ESP/REG 对象名称246eeb24 109a21bc System.UnhandledExceptionEventHandler246eeb2c 39083998 System. ..
发布时间:2021-09-25 19:28:52 其他开发

.loadby 不起作用,但 .load 运行良好

当我尝试使用windbg时, .load C:\Windows\Microsoft.NET\Framework64\v4.0.30319\SOS.dll 完美加载 SOS 扩展. 但是当我尝试使用建议的模式时 .loadby SOS 或 .loadby sos.dll 我只能收到一条错误消息,指出“扩展字符串中的语法错误". 我试图用谷歌搜索此错误消息,但没有找到任何有用的 ..
发布时间:2021-09-25 19:28:40 其他开发

使用 WinDbg 从委托中获取方法名称

我有以下委托对象转储: 名称:MyEventHandler方法表:132648fcEEClass: 1319e2b4大小:32(0x20) 字节领域:MT 字段偏移类型 VT Attr 值名称790fd0f0 40000ff 4 System.Object 0 实例 014037a4 _target7910ebc8 4000100 8 ...ection.MethodBase 0 实例 0000 ..
发布时间:2021-09-25 19:28:35 其他开发

调试在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 SOS中设置断点

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

在32位计算机上通过64位转储在WinDbg中丢失

我是WinDbg的新手,是从64位Windows 2008 Server的WER ReportQueue文件夹中获得此转储的。 我需要检查转储,并要在安装了Windows调试工具包的开发人员计算机上进行检查。 当我尝试加载SOS时,遇到了以下我从未见过的错误: 0:035> ; .loadby sos mscorwks 对LoadLibrary(C:\Windows\Micros ..
发布时间:2020-10-19 06:51:28 C#/.NET