Linux系统——gdb调试技巧

gdb调试技巧

  • 1.入门调试技巧
  • 2.进阶调试技巧

前言
我们知道,在linux环境下调试代码是不轻松的,至少很多IDE集成开发环境下的调试工具都比Linux下的调试要好用。但是Linux也有像gdb这样的工具,帮助我们进行相对方便的调试。
使用-g选项允许gdb调试
我们在Linux环境下编译代码时,默认生成的可执行文件是没有办法使用 gdb 进行调试的,
但是我们在编译选项里输入 -g选项,就可以使用gdb进行调试了

入门调试技巧

print/p  ==>调试中 查看变量的值
break/b + n ==> 给某个位置的代码打断点,参数可以是行号也可以是一个函数
info b ==> 查看整个代码的断点信息
run/r ==> 开始执行
continue/c ==> 继续执行
quit/q ==>退出gdb
next/n ==>单步执行(逐过程)
step/s ==>单步执行(逐语句)
⭐bt/backtrace ==> 查看函数调用栈帧(基本是调试过程中必须敲的)
⭐frame/f + n ==>切换到某个栈帧

ulimit -a:查看文件大小
ulimit -c unlimited ==》将core文件的大小调整为不做限制

gdb +(刚才的可执行程序)+ core.pid ==》

快捷键技巧
ctrl + r ==> 快速查找上次敲的命令 可以加快调试速度

进阶调试技巧

入门的这些调试过程都是让gdb启动一个程序(这种调试方法以后工作中几乎不会用到)
真实的用法:
1.使用gdb调试 coredump 文件。(也称 事后调试)
coredump(核心转储文件)就是车祸现场(照片),程序崩溃那一瞬间的临终遗言:
保存了程序崩溃的那一瞬间,程序运行到哪了,运行状况怎么样的一些信息。
吐核:就是吐出了核心转储文件(coredump)
2.使用 gdb attach(附加)上一个程序
TODO(进程相关的内容之后)

打印日志 比调试器会更管用

其他工具
cgdb(在gdb外面套了一个壳子):
比gdb好用一丢丢,但是还是比不上IDE.

猜你喜欢

转载自blog.csdn.net/qq_42685588/article/details/91046577