首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >解密.NET clr20r3 exception parameters P1..P10

解密.NET clr20r3 exception parameters P1..P10
EN

Stack Overflow用户
提问于 2010-10-29 22:27:45
回答 2查看 33.4K关注 0票数 80

我正在尝试破译与clr20r3相关的P1...P10参数的含义,当我的应用程序遇到异常时,该参数会被写入事件日志。

我最好的been able to find是:

  • P1:宿主进程版本(例如,w3wp.exe)
  • P2:宿主进程版本(例如,6.0.3790.1830)
  • P3:?(例如,42435be1)
  • P4:引发异常的程序集版本(例如,mrtables.webservice)
  • P5:程序集版本(例如,2.1.2.0)
  • P6:?(例如4682617f)
  • P7:?(例如129)
  • P8:?(例如,50)
  • P9:引发的异常类型(例如,system.argumentexception)
  • P10:?(例如NIL)

Googling for clr20r3提供了数以千计的示例参数值,人们可以尝试从中派生出一个模式。

但我希望获得有关参数含义的文档,而不是经过深思熟虑的猜测。

编辑:虽然我希望有规范的文档,但我真的很高兴看到异常被抛出,在哪一行,完成堆栈跟踪。

奖励阅读

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-10-29 22:55:47

以下是关于Watson存储桶的信息

  1. Exe文件名
  2. Exe文件程序集版本号
  3. Exe文件戳
  4. Exe文件完整程序集名称

<代码>H19出现故障的程序集timestamp

  1. Faulting程序集方法定义
  2. 出现故障的method
  3. Exception类型内的IL偏移量

这里还有一篇关于这个问题的MSDN文章。

示例:

代码语言:javascript
复制
  Problem Signature 01: devenv.exe
  Problem Signature 02: 11.0.50727.1
  Problem Signature 03: 5011ecaa
  Problem Signature 04: Microsoft.VisualStudio.SharePoint.Project
  Problem Signature 05: 11.0.60226.0
  Problem Signature 06: 512c2dba
  Problem Signature 07: 18a8
  Problem Signature 08: 1d
  Problem Signature 09: System.NullReferenceException
票数 83
EN

Stack Overflow用户

发布于 2010-10-29 23:26:19

P7和P8是找出P9异常引发位置的重要工具。使用P4了解要查找的程序集。运行ildasm.exe并打开该程序集。文件+转储,勾选"Token values“复选框,确定并将.il文件保存到某个地方。

在文本编辑器中打开该文件。P7给出了方法令牌,它从0x06开始,产生令牌值"06000129“。搜索:

代码语言:javascript
复制
.method /*06000129*/

它给出了方法名,从那里查找,找到了.class,它给出了类名。

P8会给出IL偏移量。从found .method中,查找引发异常的指令的IL_0050。将其映射回源代码有点棘手,但您可能会弄清楚。如有必要,使用Reflector。

通常,为AppDomain.UnhandledException编写一个事件处理程序,以避免对这些Watson崩溃存储桶进行反向工程。记录e.ExceptionObject.ToString()的值以获取异常消息和堆栈跟踪。

票数 114
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4052770

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档