Linux  gdb调试

release 发行版      
debug  开发版本  可调试版本    添加了一些debug_*段   


源代码 ----》  可执行文件    默认的release          
          编译链接                    debug      gcc  -o  debug  main.c  -g
   
编译过程中加入debug信息:
 gcc -o main.c  -g
链接不会加入debug信息
gcc  -o   main   main.o

调试的对象:                   单步执行
main.c   main.o   debug(调试)


gdb debug 进入调试   
    
l(list)   显示源代码(默认显示main函数所在文件的源代码)
list filename.num    显示指定文件指定行附近的源代码
断点:
b(break)  linenum  给指定行添加断点
b  functionname  给指定函数添加断点
b filename:linenum  给指定文件指定添加断点
b  linenum if 条件    添加一个条件断点

Info b 显示断点信息
d  bpnum  删除断点
disable bpnum  将断点设置为无效
enable bpnum 将断点设置为有效

执行过程控制:
r (run) 启动调试
n(next)  执行下一步
s  进入函数中执行
finish  退出函数执行
c(continue)   继续运行  运行到下一个断点中
q(quit)   退出调试

各种查看

p(print)  valname  查看变量的值
p  &valname 查看便量的地址
p  *ptr   查看指针指向的地址存储的值

p   arr  显示数组所有元素
p   *ptrarr@num(num表示元素个数)    通过指向数组的指针显示所有元素

p struct_val   显示结构体变量中所有成员的值
p struct_val.a   显示结构体变量中某个成员的值
p ptr_struct->a   通过指针显示结构体变量中某个成员的值

p  functionname(a,b)  将函数测试运行

bt  显示函数调用栈(函数调用流程)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章