[英]How to set conditional breakpoint on return statement globally?
我的代碼充滿了以下功能:
bool f_i()
{
if (!f_0()) {
return false;
}
if (!f_1()) {
return false;
}
// ...
if (!f_n()) {
return false;
}
return true;
}
// etc...
在執行的某個步驟中,一些被調用者可以返回false
,而false
傳播通過所有調用者。 此刻很難編寫錯誤消息(代碼快速更改)。 在調試期間,在每次return false;
之前有錯誤消息return false;
。
是否可以使用GDB
在全局return
語句上設置條件(條件:比如,函數返回false
)斷點?
在某些執行步驟中,一些被調用者可以返回false
據我所知,你想找到第一個在f_i()
返回false
函數。 您可以使用反向調試 。 您可以:
完成當前幀執行
(gdb)fin
如果返回值為false
,則向后退一步
(gdb)反向步驟
如果需要,您可以繼續向后,更深入地進行false
傳播呼叫
(gdb)反向鰭
(gdb)反向步驟
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.