有没有办法用GDB在代码的每一行设置断点?显然我不想b *addr每一行都打,所以我想知道是否有一个快速的方法来做到这一点.
编辑 请注意,我正在运行由其他人创建的二进制文件,但我无法访问源代码.不幸的是,该二进制文件尚未使用-g标志进行编译.因此,我不能单步执行代码中的每一行.
进一步编辑
正如杰森在下面指出的那样,只要您使用si或者ni,而不仅仅是s(步骤)或n(下一步),您确实可以单步执行代码.n或s做工精细,不过,如果源代码被编译-g,但它通过行源代码的步骤,而不是通过每一个汇编指令步进像ni或si在没有-g编译的二进制做.
使用si(stepi)来指导代码.您可以使用ni(nexti)来跳过您不感兴趣的库函数.如果您不小心插入其中一个函数,finish应该让您回到原来的例行程序.在这个级别工作的人通常将gdb设置为显示即将执行的下几个指令,例如disp/3i $pc.
| 归档时间: |
|
| 查看次数: |
4060 次 |
| 最近记录: |