簡體   English   中英

如何在return語句中全局設置條件斷點?

[英]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函數。 您可以使用反向調試 您可以:

  1. 完成當前幀執行

    (gdb)fin

  2. 如果返回值為false ,則向后退一步

    (gdb)反向步驟

  3. 如果需要,您可以繼續向后,更深入地進行false傳播呼叫

    (gdb)反向鰭
    (gdb)反向步驟

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM