gdb 调试说明:
判断程序是否为debug版本:
方法一:
命令:gdb a.out //注:这里的命令是指在Linux终端下面输入的命令
非debug版本,会提示:Reading symbols from a.out...(no debugging symbols found)...done.
debug版本,会提示:Reading symbols from a.out...done.
方法二:
命令:readelf -S binfile
debug版本:会包含debug_info、.debug_abbrev、.debug_line、.debug_str等字段
非debug版本:不会包含debug_info、.debug_abbrev、.debug_line、.debug_str等字段
gdb启动调试:
命令:gdb a.out
在gdb里面,怎么查看文件的源码
先设置源码路径:
gdb命令:dir /data/src:/data/temp //注:这里的gdb命令是指在gdb交互模式下输入的命令
设置源码路径: /data/src 和 /data/temp 两个目录
查看设置的源码路径:
gdb命令:show dir
查看文件内容:
比如你想查看main.c文件里面的内容:
gdb命令: l main.c:1 //查看main.c第1行附件的内容,后续按enter,可以查看剩余内容
gdb调试core文件:
gdb a.out corefile
gdb监测变量的变化:
watch num //num就是我们代码里面的变量值
设置好watch之后,gdb执行run命令,当num的值发生变化后,gdb就会暂停下来,然后打印相关调用位置代码