代码之家  ›  专栏  ›  技术社区  ›  Ian Boyd

破译.NET clr20r3异常参数P1..P10

  •  74
  • Ian Boyd  · 技术社区  · 14 年前

    我正试图破解P1…P10参数的含义 clr20r3

    我所拥有的最好的 been able to find 是:

    • :托管进程( 例如 w3wp.exe )
    • :宿主进程版本( 例如 6.0.3790.1830 )
    • 第3页 : ??? ( 例如 42435be1
    • :引发异常的程序集( mrtables.webservice )
    • :程序集版本( 例如 2.1.2.0
    • P6页 : ??? ( 例如 4682617f
    • 第7页 : ??? ( 129 )
    • 第8页 例如 50
    • 第9页 :引发的异常类型( system.argumentexception )
    • : ??? ( NIL )

    Googling for clr20r3 提供数千个示例参数值,有人可以从中尝试派生模式。

    但我希望有关于参数含义的文档,而不是有根据的猜测。


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

    额外阅读

    2 回复  |  直到 6 年前
        1
  •  77
  •   Visual Vincent    8 年前

    这是关于沃森桶的信息

    1. Exe文件程序集版本号
    2. Exe文件完整程序集名称
    3. 错误程序集时间戳
    4. 异常类型

    这里还有一个 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
    
        2
  •  107
  •   Noctis    10 年前

    P7和P8是找出P9异常产生位置的重要参数。使用P4了解要查找的程序集。运行ildasm.exe并打开该程序集。文件+转储,勾选“标记值”复选框,确定并将.il文件保存到某个位置。

    在文本编辑器中打开文件。P7给你方法标记,它从0x06开始,产生标记值“06000129”。搜索:

    .method /*06000129*/
    

    P8提供IL偏移量。从found.方法中,查找引发异常的指令的IL_。将它映射回源代码有点棘手,但您可能会弄清楚。必要时使用反光镜。

    通常,为 AppDomain.UnhandledException e.ExceptionObject.ToString() 获取异常消息和堆栈跟踪。