# gdb -q ./main Reading symbols from ./main...done. (gdb) b 6 Breakpoint 1 at 0x64e: file main_01.cpp, line 6. (gdb) b 10 Breakpoint 2 at 0x669: file main_01.cpp, line 10. (gdb) info b Num Type Disp Enb Address What 1 breakpoint keep y 0x000000000000064e in func() at main_01.cpp:6 2 breakpoint keep y 0x0000000000000669 in main() at main_01.cpp:10 (gdb) save breakpoints file-name-to-save # 当前目录下会生成一个文件:file-name-to-save Saved to file 'file-name-to-save'.
# 重新调试 (gdb) source file-name-to-save Breakpoint 1 at 0x64e: file main_01.cpp, line 6. Breakpoint 2 at 0x669: file main_01.cpp, line 10. (gdb) info b Num Type Disp Enb Address What 1 breakpoint keep y 0x000000000000064e in func() at main_01.cpp:6 2 breakpoint keep y 0x0000000000000669 in main() at main_01.cpp:10
// code int main(void) { int i = 0; int sum = 0; for (i = 1; i <= 200; i++) { sum += i; } printf("%d\n", sum); return 0; }
// gdb 调试 (gdb) b 7 if i = 100 # 只有在 i 的值为 100 时会触发 Breakpoint 1 at 0x670: file main_01.cpp, line 7. (gdb) r Starting program: /data/code/cpp/test/gdb_test/main
Breakpoint 1, main () at main_01.cpp:7 7 sum += i; (gdb) p i $1 = 100