Debug
weijitao
这个作者很懒,什么都没留下…
展开
-
gdb调试--堆栈相关
用GDB调试程序最常用的莫过于使用bt命令查看发生问题时的调用栈了。显示的堆栈信息依次是从最底层到最上层的一个被调用关系。那这些堆栈信息是如何而来的?函数在调用的时候会自动的将一些信息压栈。以x86架构下为情况说明,首先压入的是参数,在有多个多个参数的情况下,从右往左依次压入;然后是调用函数的返回地址;接着是压调用函数的栈帧的帧指针ebp(或者rsp);再下来就是被调用函数的局部变量了。原创 2015-07-07 21:38:07 · 1842 阅读 · 0 评论 -
gdb调试--汇编指令处断点
GDB中断点使用都很简单,如果我们要断点在函数main开始,直接b main就行。 图1 如上图所示停留在断点1,main函数开始处。汇编看到是在第四条汇编指令,那前3条指令都做了些什么?第一条指令是将rbp寄存器压栈,rbp寄存器保存的是栈帧的底部,这里是将调用main函数的函数(这里main是被调用函数)的栈帧底部压栈。第二条汇编指令是将rsp寄存器的值存入rbp原创 2015-07-04 00:11:00 · 14143 阅读 · 0 评论