乐趣区

关于c++:gdb命令使用

编译程序时须要加上 -g,之后能力用 gdb 进行调试:gcc -g main.c -o main

gdb pcefctrl_test
进入 GDB 后,设置执行单条用例的命令:
set args –gtest_filter=PcefctrlPolicyDetection.GIVEN_sess_crt_WHEN_build_detection_ruleInfo_THEN_build_detection_RuleInfo_ok
执行一组用例集
set args –gtest_filter=SetPackage.*
gdb 中命令:

回车键:反复上一命令

(gdb)help:查看命令帮忙,具体命令查问在 gdb 中输出 help + 命令, 简写 h

(gdb)run:从新开始运行文件(run-text:加载文本文件,run-bin:加载二进制文件), 简写 r

(gdb)start:单步执行,运行程序,停在第一执行语句

(gdb)list:查看原代码(list-n, 从第 n 行开始查看代码。list+ 函数名:查看具体函数), 简写 l

(gdb)set:设置变量的值

(gdb)next:单步调试(逐过程,函数间接执行), 简写 n

(gdb)step:单步调试(逐语句:跳入自定义函数外部执行), 简写 s

(gdb)backtrace:查看函数的调用的栈帧和层级关系, 简写 bt

(gdb)frame:切换函数的栈帧, 简写 f

(gdb)info:查看函数外部局部变量的数值, 简写 i

(gdb)finish:完结以后函数,返回到函数调用点

(gdb)continue:持续运行, 简写 c

(gdb)print:打印值及地址, 简写 p

(gdb)quit:退出 gdb, 简写 q

(gdb)break+num:在第 num 行设置断点, 简写 b

(gdb)info breakpoints:查看以后设置的所有断点

(gdb)delete breakpoints num:删除第 num 个断点, 简写 d

(gdb)display:追踪查看具体变量值

(gdb)undisplay:勾销追踪察看变量

(gdb)watch:被设置观察点的变量产生批改时,打印显示

(gdb)i watch:显示观察点

(gdb)enable breakpoints:启用断点

(gdb)disable breakpoints:禁用断点

(gdb)x:查看内存 x /20xw 显示 20 个单元,16 进制,4 字节每单元

(gdb)run argv[1] argv[2]:调试时命令行传参

(gdb)set follow-fork-mode child#Makefile 项目管理:抉择跟踪父子过程(fork())

core 文件:先用 $ ulimit -c 1024 开启 core,当程序出错会主动生成 core 文件。调试时 gdb a.out core

退出移动版