在運行的ASP.NET應用程序中出現CLR20R3
錯誤。最後我知道我需要抓住這個錯誤 - 顯然 - 但這是我在PROD中解決這個問題後所要做的維護任務。我不能直接進入維護任務的原因是因爲它需要花費過多的工作和時間才能使這些更改在所有較低環境中進行測試和批准,然後才能進入PROD。利用CLR20R3信息將IL轉儲映射回源代碼
錯誤指出P7
值爲4dd
,因此讓從違規組件的IL轉儲(這是不我的組件)後,我發現代碼。我也呈現出幾行的方法令牌也因爲我覺得後,那些被引用在調用的方法有問題的行:現在
IL_0040: callvirt instance int32 IBM.WMQ.MQTCPConnection/*02000072*/::SendData(uint8[],
int32,
int32) /* 060004DD */
IL_0045: stloc.0
IL_0046: leave.s IL_0055
,考慮到這一點,這是一個很好賽格瑞進入正題因爲我試圖將其映射回有問題的程序集的反編譯代碼。
IL_0046: leave.s IL_0055
行是否引用被調用方法中失敗的行?
因爲如果是的話,下面是匹配線,與一些似乎是有關上述代碼的一起:
IL_0044: callvirt instance int32 [System/*23000002*/]System.Net.Sockets.Socket/*0100000E*/::Send(uint8[],
int32,
int32,
valuetype [System/*23000002*/]System.Net.Sockets.SocketFlags/*01000060*/) /* 0A0000F9 */
IL_0049: stloc.0
IL_004a: ldarg.0
IL_004b: ldc.i4 0x92
IL_0050: ldstr "Send returned " /* 700028D5 */
IL_0055: ldloc.0
,但是,我有一個小麻煩證明這就是它是指因爲Hans表示in this postP8
的值是偏移量或違規行,並且不會例外。例外情況表示P8
的值爲7d
。