gdb斷點(六)condition 與ignore

2021-06-01 05:01:17 字數 797 閱讀 3974

如果為乙個斷點設定乙個條件,每當程式到達這個斷點的時候都會去判斷是否為true,

只有條件為true時才會在斷點出停下。斷點條件的除錯方式與斷點斷言的除錯方式邏輯是想反的,assert是當條件為false時停止,

所一如果在條件調中用斷言的話應該是:condition !assert(exp)。

斷點的條件除錯優越性在同個地方設定多個斷點的時候體現的更完美。這樣我們就可以控制在

同乙個斷點,因不同的條件(不同的地方呼叫)而停止程式,同時你也可以自定義命令列,來

列印所需要的資訊。

設定斷點的條件方式如下:

1、設定斷點的時候加入條件

break foo if value_a > value_b

2、用condition命令

condition bnum expression

例如: condition 6 if value_a == 10

no symbol "foo" in current context

3、取消斷點條件

condition bnum

4、斷點條件特殊用法

斷點條件的乙個特殊用法是,程式只有在到達斷點一定次數之後才會停止。這用乙個特殊的命令可以實現。

ignore bnum count

ignore 2 10  //觸發斷點10次後,才會停止,每次觸發斷點count自減1

如果乙個斷點及設定了條件,又設定了觸發次數,在觸發次數count為0之前,是不會判斷斷點的條件。

ignore 命令對breakpoint watchpoint catchpoint都有效。

gdb 條件斷點

gdb 條件斷點 1.有時候,我們需要斷點在迴圈的某個條件處時,比如以下 include int main int argc,char argv return 0 2.開始編譯 cc g main.c將生成a.out 3.開始斷點 gdb a.out l l命令用於檢視 4.通過以上命令可以看到 m...

GDB 斷點設定

啟動gdb後,首先就是要設定斷點,程式中斷後才能除錯。在gdb中,斷點通常有三種形式 斷點 breakpoint 在 的指定位置中斷,這個是我們用得最多的一種。設定斷點的命令是break,它通常有如下方式 可以通過info breakpoints n 命令檢視當前斷點資訊。此外,還有如下幾個配套的常...

GDB(設定斷點)

啟動gdb後,首先就是要設定斷點,程式中斷後才能除錯。在gdb中,斷點通常有三種形式 斷點 breakpoint 在 的指定位置中斷,這個是我們用得最多的一種。設定斷點的命令是break,它通常有如下方式 可以通過info breakpoints n 命令檢視當前斷點資訊。此外,還有如下幾個配套的常...