gdb调试记录

原创:https://blog.csdn.net/ndzjx/article/details/88901862

1:明确需求

2:设计程序(如何构造程序,什么样的数据结构,它如何在程序中使用)

3:调试+优化

gdb 为了调试程序,在编译时需要加上一个或多个特殊的编译器选项,这些选项的作用是让编译器在程序中添加额外的调试信息,包括各种符号和源代码行号。

-g标志是调试性编译时常用的一个选项。

strip <file> 将可执行文件中的调试信息删除而不需要重新编译程序。

gcc -g -o pro pro.c

gdb pro

run

cont

backtrace bt where

print j

print a[3]

list

break 20 在第20行下一个断点

print array[0]@5 打印叔=数组多个元素

display array[0]@5 ; display命令告诉gdb,每次程序停在断点时自动显示数组内容

commands 修改断点设置,使程序不再断点处停下来,而是显示要查看的数据,然后继续执行。

> display array[0]@5

> cont

> end

info查看设置过的断点及display命令的内容

info display

info break

禁用

disable break 1

disable display 1

break 30

commands 2 ;在第二处断点处设置命令

> set variable n = n + 1

> cont

> end

断点可以和计数、条件结合在一起设置。

gdb还可以将其自身附在已经运行的程序上。

gcc -O -g 同时获得程序优化和调试信息的好处。

splint -strict pro.c 静态检查

assert.h定义的宏受NDEBUG的影响,NDEBUG定义了,就不定义assert宏。

gcc -DNDEBUG pro.c

猜你喜欢

转载自blog.csdn.net/ndzjx/article/details/88901862
今日推荐