嵌入式开发交流网论坛

标题: 简明易记,linuxgdb命令速记手册 [打印本页]

作者: __嘘理解我    时间: 2020-10-23 13:54
标题: 简明易记,linuxgdb命令速记手册
1,启动程序
2,常用命令
3,设置断点
4,查看源文件
5,查看设置了哪些断点
6,删除断点
例子:先用info b查看有哪些断点,注意Num列,如果想删除【src/add.c:4】处的断点,就执行【d 2】
(gdb) info b
Num Type Disp Enb Address What
2 breakpoint keep y 0x0000555555554667 in add at src/add.c:4
3 breakpoint keep y 0x000055555555468b in main at main.c:5
删除3号(src/add.c:4处的)断点:
(gdb) d 2
再用info b看看,发现2号断点没有了。
(gdb) info b
7,查看变量的值和变量的类型
8,设置程序的启动参数
9,修改变量的值
10,查看帮助
11,每次单步执行都想观察变量的值,请使用【display】,不想看了,就用【undisplay】加Num的号码
12,调试core文件,当出现:段错误(核心已转储)时,可以使用【gdb 程序名 core文件名】后,就能直接看到在哪行出错,如果没有显示,可以输入【where】,也可以定位到哪行出错。
但是core文件默认是不被生成的,如何让它生成呢,
之后就有了下面的问题:
程序第一次执行出了错误后,就会在当前目录生成一个名字为【core】的文件,问题来了,如果又执行了一次,又出了错误后,又会生成一个【core】,这次的【core】就会覆盖掉上次的【core】,所以就需要设置如何生成【core】的文件名,达到每次生成的【core】的名字都不相同,就不会覆盖掉上次的core文件了。
选项如下:
%u:insert current uid into filename 添加当前的uid
%g:insert current gid into filename 添加当前的gid
%s:insert signal that caused the coredump into the filename 添加导致产生core的信号
%t:insert UNIX time that the coredump occurred into filename 添加core文件生成时间的unix时间
修改办法:





欢迎光临 嵌入式开发交流网论坛 (http://www.dianzixuexi.com/bbs/) Powered by Discuz! X3.2