GDBhtml
一、调试core ulimit -c ulimitedlinux
产生段错误,目录下有core文件, gdb a.out core数组
二、ps经常使用命令http://linux.cn/article-4743-1.htmlspa
pstree,进程ps -aux,查看线程ps -eLf线程
调试线程,gdb中info thread调试
thread 9htm
三、查看数组进程
(1)动态数组:
p *array@len
array:数组的首地址,len:数据的长度
eg:
(gdb) p *array@len
$1 = {2, 4, 6, 8, 10}
(2)静态数组
能够直接用print数组名,就能够显示数组中全部数据的内容了。
四、输出格式
x 按十六进制格式显示变量。
d 按十进制格式显示变量。
u 按十六进制格式显示无符号整型。
o 按八进制格式显示变量。
t 按二进制格式显示变量。
a 按十六进制格式显示变量。
c 按字符格式显示变量。
f 按浮点数格式显示变量。
eg. (gdb)p/x var
五、查看内存
x/
n、f、u是可选的参数。
(1)n 数量
(2)f 表示显示的格式,参见上面。若是地址所指的是字符串,那么格式能够是s,若是地十是指令地址,那么格式能够是i。
(3)u 默认4个bytes。b表示单字节,h表示双字节,w表示四字 节,g表示八字节。
eg:
x/3uh 0x54320 :从内存地址0x54320读取内容,h表示以双字节为一个单位,3表示三个单位,u表示按十六进制显示。
六、多进程调试
(1)用法:set follow-fork-mode [parent|child]
(2)用法:set detach-on-fork [on|off]
on: 只调试父进程或子进程的其中一个(根据follow-fork-mode来决定),这是默认的模式。
off: 父子进程都在gdb的控制,其中一个进程正常调试(根据follow-fork-mode来决定),另外一个进程会被设置为暂停。
(3)attach