首先在编译时,必须把调试信息加到可执行文件中,使用gcc/g++的-g参数可以做到这点 指令介绍 help 查询指令,查看其它指令的用法,如help print shell 启动标准shell执行command string,如shell ps,直接shell也可,输入quit退出shell print 用于打印的指令,搭配参数使用,类似print/x(或p/x),[x/d/u/o/t/a/c/f/s] set 用于设置gdb内部的一些环境与运行时的参数 set logging on 保存当前调试信息到gdb.txt set args xxx 传递参数到程序(也可以通过r xxx传递参数) show 描述GDB本身状态 info(缩写i) 描述程序的状态 info args info registers info breakpoints info thread -cd/directory 用于指定源码路径(当前gdb的位置不在源码目录下或二进制不在源码目录下,否则会自动查找) file 用于加载调试用的二进制文件 backtrace(缩写bt) 查看调用栈,[full详细信息|n打印n层调用栈] next 控制程序向下执行 list(缩写为l) 用于列出源码 thread(缩写为t) 用于切换线程 thread apply all + 指令,对所有线程执行指令 x