gdb ps

GDB

1、调试core  ulimit -c ulimited

产生段错误,目录下有core文件, gdb a.out core

2、ps常用命令http://linux.cn/article-4743-1.html

  pstree,进程ps -aux,查看线程ps -eLf

调试线程,gdb中info thread

            thread 9

3、查看数组

    (1)动态数组:
    p *array@len 
    array:数组的首地址,len:数据的长度
eg:
    (gdb) p *array@len
    $1 = {2, 4, 6, 8, 10}
    
    (2)静态数组
    可以直接用print数组名,就可以显示数组中所有数据的内容了。
 
4、输出格式
    x 按十六进制格式显示变量。
    d 按十进制格式显示变量。
    u 按十六进制格式显示无符号整型。
    o 按八进制格式显示变量。
    t 按二进制格式显示变量。
    a 按十六进制格式显示变量。
    c 按字符格式显示变量。
    f 按浮点数格式显示变量。
eg.  (gdb)p/x var
 
5、查看内存
  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表示按十六进制显示。
 
6、多进程调试
(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
posted @ 2016-03-04 22:55  zhou09  阅读(376)  评论(0编辑  收藏  举报