如何追中異常,減少debug時間

2021-07-07 10:16:21 字數 1399 閱讀 9740

今天在debug的時候,又出現了空指標,我這次真的火了!每次遇到空指標,.net給出的資訊總是非常的少,我根本不知道是**throw出來的,只能反覆檢查**。

思路大概是:

獲取exception的呼叫堆疊。

獲取exception相關的這個方法的方法的il**

結合excpetion的il偏移量和方法的il,把呼叫源找出來。

**

class program

catch (exception ex)

else

//獲取方法資訊

int metadatatoken = readint32(il, ref offset);

methodbase callmethod = frame.getmethod().module.resolvemethod(metadatatoken,

frame.getmethod().declaringtype.getgenericarguments(),

frame.getmethod().getgenericarguments());

//完成

console.writeline(callmethod.declaringtype + "." + callmethod.name);

console.read();}}

private

static

intreadint32(byte il, ref

int position)

}public

class ilglobals

else

multibyteopcodes[num2 & 0xff] = code1;}}

}}

////// retrieve the friendly name of a type

//////

/// the complete name to the type

//////

/// the simplified name of the type (i.e. "int" instead f system.int32)

///public

static

string

processspecialtypes(string typename)

return result;

}public opcode multibyteopcodes

}public opcode singlebyteopcodes

}}

該文的應用場景估計是:(1)程式在一台機器上已經開發除錯ok了;(2)release編譯並部署到另一台機器。在這裡出現了nre的話,.net fw是不能給你這麼多的資訊的,只能重新到開發機器進行除錯。所以,lz這種方法還是不錯的。

但是,更明智的方法是進行精密的異常管理。

新站如何減少頁面載入時間

在 優化中,然和盡量短時間內將自己的內容展現給使用者,讓使用者www.cppcns.com減少等待的時間。從而 如何減少頁面載入時間 已經成為眾多seo專家 網路營銷和 開發者意識到的乙個熱門話題。它被很多 開發者們所重視,盡可能用快速的頁面載入時間來強化 的價值,但是,許多企業卻繼續忽視它,一次又...

如何在SharePoint中Debug

工作忙,廢話少說 1.把assembly對應的dll部署到gac的同時,還需要把對應的.pdb檔案拷貝到gac中,最好的方式是在部署指令碼中用xcopy命令把.pdb檔案拷貝到gac中 2.剩下的工作就和asp.net的debug差不多了,除錯的時候附加到當前的w3wp程序,在需要跟蹤的地方設定斷點...

如何減少opencv標註中文的時間

眾所周之,用opencv畫圖,是不能直接在上標註中文的,如果要標註中文,需要用到pil庫。在用pil庫進行處理時,需要把讀入的轉成pil的image格式,處理完之後,又得把image格式轉化成array格式。在這兩個轉化的過程,其實是非常耗時的,它的耗時量與的畫素數量成正比。你可以看下面這個例子,就...