码迷,mamicode.com
首页 > 数据库 > 详细

gdb调试小结

时间:2018-12-05 02:21:50      阅读:419      评论:0      收藏:0      [点我收藏+]

标签:语法规则   查看   help   挂载   rac   语法   value   小结   ext   

1、查看堆栈
   gstack <pid>
2、挂载到正在运行的进程
  gdb attach <pid>
3、调试core文件
   gdb <app> <app.core>
   gdb -c <app.core> <app>
4、设置产生core
   查看当前core设置:
   a) ulimit -a
   b) cat /proc/sys/kernel/core_pattern
   开启core并修改其位置:
   a) ulimit -c unlimited
   b) echo "/home/corefile/core-%e-%p-%t" > /proc/sys/kernel/core_pattern
   c) echo "1" > /proc/sys/kernel/core_uses_pid
   其中第3个带pid,第2个带程序名、pid、时间戳。
   注意:该方法是临时修改,系统重启后失效。永久修改可以在/etc/sysctl.conf里面按语法规则追加。
5、常用gdb命令
   a) 查看堆栈(backtrace)
      bt
      t a a bt
      第2个对所有线程打印堆栈(thread apply all backtrace)
   b) 进入堆栈第3层(frame)
      f 3
   c) 查看源码片段(list)
      list
   d) 查看断点(info)
      info break
   e) 设置断点(break)
      b funcA
      b 1038
      b file.c:funcA
      b file.c:1038
      b 1038 if i==99
   f) 打印变量(print)
      p retValue
   g) 运行至断点(run)
      r
   h) 继续执行到下个断点(continue)
      c
   i) 单步进入函数(step)
      s
   j) 单步执行(next)
      n
   k) 跳出函数(finish)
      finish
   l) 监视变量值变化(watch)
      watch p
   m) 帮助与退出(quit)
      help
      q
6、编译带调试信息的二进制
   gcc -g app a.c b.c
7、生成符号表
   objcopy --only-keep-debug app app.symbols
8、用gdb拉起进程
   gdb --args app p1 p2 p3
   gdb -s app.symbols -e app

gdb调试小结

标签:语法规则   查看   help   挂载   rac   语法   value   小结   ext   

原文地址:https://www.cnblogs.com/momo0609/p/10068251.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!