需求背景:條件斷點可能執行多次,但是可能在最后一次執行引發了后續的問題,但是斷點位置并非問題現場,如何使得斷點在最后一次停下來?
方法:
1.首先設置條件斷點?
(gdb) b
(gdb) cond breakpoint_number stop_condition
2.然后設置忽略斷點次數,盡量將次數設置大一些
(gdb)ignore breakpoint_number N
3.執行程序后,通過斷點信息來查看斷點執行了多少次
(gdb)info b
此時gdb會給出斷點已經執行的測試,假設執行了n次,此時重新設置斷點忽略次數
(gdb)ignore breakpoint_number n-1
此時重新運行程序,GDB將在最后一次hit到該斷點時stop下來。