[編輯:讓我重新整理] 說發生在調試對象o
具有性能a
和b
,其值null
和Hello
。是否有可能自動生成下一個調試會話以下代碼:的NetBeans調試最佳實踐
if(o.a == null && o.b == "Hello") {
}
調試時具有應對複雜的用戶輸入,如編程語言解析器的程序,我經常要開始調試從解析過程中的某個點開始。當處理來自特定行輸入代碼的指令時,我實現了一種簡單的啓動方式。
但是,行可能包含非常複雜的指令,導致代碼中的深度遞歸,因此在開始調試後,我必須手動進入程序。當這種情況發生在一個功能func(obj a)
,我平時寫一些醜陋的代碼是這樣的:
public void func(obj a) {
if(a instanceof someClass && ((someClass)a).hasSomeProperty() && ((someClass)a).getIdentifier().equals("myID")) {
// set a breakpoint here
}
// other code
}
所以基本上我試圖通過識別傳遞給函數的對象識別有趣的情況。我知道這些值,因爲我通常在其他代碼中引發的異常上有斷點。所以我的問題是:不是編寫所有這些難看的代碼來生成適當的斷點,有沒有一種方法可以根據某個變量在以前的調試會話中具有的某個值來配置條件斷點?基本上說:當物體完全像這裏一樣時,停在這裏?
+1非常優雅的解決方案。我可以看到,在試圖停止任何複雜的變量(數組)或對象時,這在調試時很有用。 – Jeff