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

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值