我使用gdb來調試一些C++代碼。目前我正在查看的代碼遍歷一個指針數組,它是指向某個對象的指針或NULL指針。gdb中的條件顯示
如果我只是display list[index]->member
它會在列表[index]爲空時發生抱怨。無論如何只有在list [index]不爲空時才顯示成員?我知道你可以設置條件斷點(condition <bp-num> <exp>
),但我不確定這會有什麼幫助。
的代碼中的問題是:
for (int i=0;i<BSIZE*BSIZE;i++){
if (vms[i]==target) {valid=true; break;}
}
其中虛擬機是指針數組。
Got it! 在'if'行設置一個斷點,到達它,直到vms [i]!= NULL,將斷點(稱爲BP1)設置爲'condition 1 vms [i]!= NULL'並安全地打開'display vms [i] - > member',然後繼續點擊繼續:) 更好的解決方案歡迎! – Samizdis