是否可以在Visual Studio 2010中指定一個斷點,該斷點僅在調用堆棧上的調用方法滿足某些特定條件時纔會命中?例如,最有可能的方法名稱。調用堆棧上的條件斷點
我理想的是在Visual Studio本身尋找一個解決方案,比如條件斷點,但我會解決測試方法名稱在代碼中的堆棧並且有一個編碼的斷點。
我想要實現的是切斷來自特定調用者的調用。
是否可以在Visual Studio 2010中指定一個斷點,該斷點僅在調用堆棧上的調用方法滿足某些特定條件時纔會命中?例如,最有可能的方法名稱。調用堆棧上的條件斷點
我理想的是在Visual Studio本身尋找一個解決方案,比如條件斷點,但我會解決測試方法名稱在代碼中的堆棧並且有一個編碼的斷點。
我想要實現的是切斷來自特定調用者的調用。
右擊斷點,選擇「條件」,並使用這樣的事情:
new System.Diagnostics.StackTrace().ToString().Contains("YourMethodName")
的StackTrace class應該給你你需要什麼。
StackTrace stackTrace = new StackTrace();
StackFrame[] stackFrames = stackTrace.GetFrames();
哈!是的,但不幸的是我已經使用OzCode ;-)顯然,在VS 2015中對此的支持也有所改善,儘管我還沒有機會使用它。 – 2015-08-06 20:14:14
你的意思是VS2015還是新的OzCode(v2.0)?自從新版本更好地支持條件斷點以來,我在問。 – 2015-08-11 06:09:26
我得到免費升級到2.0作爲測試版客戶或某事,但由於我一直在做的工作類型,我還沒有在太多的非標準情況下使用它(觸摸木頭)並不是深潛調試。 – 2015-08-11 07:23:26
這將字符串整個堆棧跟蹤,使得它很貪婪。是否可以迭代最後5個調用者並測試其名稱,同時仍將代碼插入「條件...」代碼段? – 2011-04-04 15:16:41
由於條件必須是單線,您可以使用'GetFrame(index)'與'||'結合在一起,但它會使效率更低。 – 2011-04-04 15:19:25
另外,您不能在條件中使用lambdas。 – 2011-04-04 15:21:44