分类: LINUX
2012-03-30 17:20:31
list命令可以查看源码。启动GDB后第一个list命令会定位到main函数,以main函数为中心显示上下共10行代码。
下一个list命令查看下面的10行。可以重复执行这个命令,直到到达文件尾。
list -查看前10行代码。
list n命令显示以第n行为中心的上下共10行代码。
list n,命令显示以第n行开头的10行代码。
list ,n显示以第n行结尾的10行代码。
list m,n显示以第m行开头,第n行结尾的代码。
list f以函数f为中心的上下10行代码。f可以是其它文件里定义的函数。
list file:line显示文件file里的第line行代码。
list file:f显示文件file里的函数f的代码。
函数名、文件名+行号/函数名也都适用于list f1,f2的格式。
通过内存地址查看源码。
用print命令打印一个函数的内存地址:
(gdb) print *main
$1 = {int (int, char **)} 0x80486ff
注意:这里的地址不是调用栈的地址。
通过这个地址可以找到源码:list *0x80486ff可以列出main函数的上下10行代码。
list *0x8048711(main函数地址之后的一些偏移)可以列出main函数里的某行代码。
set listsize n可以设置每次显示的行数。
在源码之间移动
step命令一次执行一行。如果当前行是一个函数,step会进入这个函数。
next命令也是一次执行一行。但如果当前行是一个函数,它会略过这个函数。
where命令可以知道自己当前在源码的哪一行。
gdb> where