我正在尝试破解与我的应用程序遇到异常时写入事件日志的clr20r3
相关的P1 ... P10参数的含义。
我been able to find最好的是:
w3wp.exe
)6.0.3790.1830
)42435be1
)mrtables.webservice
)2.1.2.0
)4682617f
)129
)50
)system.argumentexception
)NIL
)Googling for clr20r3提供了数千个样本参数值,有人可以从中尝试派生模式。
但是我希望有关于参数含义的文档,而不是有根据的猜测。
编辑:虽然我可以希望获得规范文档,但我真的很高兴看到异常被抛出,在哪一行,完成堆栈跟踪。
答案 0 :(得分:107)
P7和P8是找出引发P9异常的重要因素。使用P4了解要查找的程序集。运行ildasm.exe并打开该程序集。文件+转储,勾选“令牌值”复选框,确定并保存.il文件。
在文本编辑器中打开文件。 P7为您提供方法令牌,它以0x06开头,产生令牌值“06000129”。搜索:
.method /*06000129*/
它为您提供了方法名称,从那里查找.class,它为您提供了类名。
P8为您提供IL偏移。从找到的.method中,查找引发异常的指令的IL_0050。将它映射回源代码有点棘手,但你可能会想出来。如有必要,请使用反射器。
通常,为AppDomain.UnhandledException
编写一个事件处理程序,以避免对这些Watson崩溃存储桶进行逆向工程的痛苦。记录e.ExceptionObject.ToString()
的值以获取异常消息和堆栈跟踪。
答案 1 :(得分:74)
以下是关于Watson Buckets的信息
此处还有一篇MSDN文章。
样品:
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