Tekkaman

导航

 

2014年1月5日

摘要: 【gdb常用命令】 缺省gdb是调试主进程的,可是现在采用daemon模式工作的程序那么多,主进程通常很快就结束了,子进程才是真正干活的。怎么跟踪调试子进程呢? 在gdb里面执行: set follow-fork-mode child 则gdb就可以调试子进程了。-------------------------------------------------------------------------------------------------------info registers REGNAME... 列出所指出的所有寄存器的值info break 列出所有的断点和观察点... 阅读全文
posted @ 2014-01-05 21:43 Tekkaman 阅读(280) 评论(0) 推荐(0)
 
摘要: 【gdb之watch命令】 什么是watchpoint? watchpoint,顾名思义,其一般用来观察某个变量/内存地址的状态(也可以是表达式),如可以监控该变量/内存值是否被程序读/写情况。 在gdb中可通过下面的几种方法来设置watchpoint: (gdb) watch 在指定变量/内存地址(表达式)expr设置一个watchpoint。一但expr值有变化时,将停住程序。 (gdb) rwatch 当expr被读时,停住程序。 (gdb) awatch 当expr被读或被写时,停住程序。 (gdb) info watchpoints 列出当前所设置了的所有观察点。在使用w... 阅读全文
posted @ 2014-01-05 19:32 Tekkaman 阅读(18743) 评论(0) 推荐(1)
 
摘要: 【gdb之x命令】 可以使用examine命令(简写是x)来查看内存地址中的值。x命令的语法如下所示: x/ n、f、u是可选的参数。 n是一个正整数,表示需要显示的内存单元的个数,也就是说从当前地址向后显示几个内存单元的内容,一个内存单元的大小由后面的u定义。 f 表示显示的格式,参见下面。如果地址所指的是字符串,那么格式可以是s,如果地十是指令地址,那么格式可以是i。 u 表示从当前地址往后请求的字节数,如果不指定的话,GDB默认是4个bytes。u参数可以用下面的字符来代替,b表示单字节,h表示双字节,w表示四字 节,g表示八字节。当我们指定了字节长度后,GDB会从指内... 阅读全文
posted @ 2014-01-05 18:58 Tekkaman 阅读(28510) 评论(0) 推荐(3)