我们的应用程序一直在抛出未处理的异常。DW20.exe 像这样的测试用例记录这些:
EventType clr20r3, P1 clr20r3.exe, P2 1.0.0.0, P3 4af175d6, P4 clr20r3, P5 1.0.0.0, P6 4af175d6, P7 1, P8 a, P9 system.applicationexception, P10 NIL.
P9 是异常的名称。如果异常名称的长度超过 32 个字符,则 DW20.exe 会对该名称进行哈希处理(并且可能对哈希进行编码)。例如,异常“LongExceptionWithNameThatIsOver32”记录为:
EventType clr20r3, P1 aspnet_wp.exe, P2 2.0.50727.3082, P3 492b8702, P4 app_web_bmcy0pha, P5 0.0.0.0, P6 4af86274, P7 59, P8 5, P9 3e3rjg2ow1fkknn0eqptakfytpvxew1k, P10 NIL.
如您所见,P9 不再是异常名称,而是名称的哈希。
我可以一次在我们的应用程序中抛出一个异常,但我更愿意将异常名称提供给实用程序而不是获取哈希。我相当确定 DW20.exe 是执行散列的程序(而不是 .NET 运行时)。我想知道 dw20.exe 正在使用什么散列/编码算法,这样我就可以构建一个实用程序来处理我的所有异常并生成相应的散列/编码。
我尝试将 windbg 附加到测试程序,但是没有调用 dw20.exe。我尝试将windbg附加到dw20.exe,当它弹出有关传输到微软的对话框时,它已经记录了异常。我无法让 dw20.exe 在 windbg.exe 的控制下启动,这将是找出正在使用什么的一种方法。
JR