摘要:
1. 代码片段: 2. GDB执行分析: 1)断点到代码行19,并且运行到代码行19 2)启用反向执行功能:record,该命令必须在程序运行起来执行。3)下一步,来到调用子函数my_print的代码行204)进入子函数my_print的第一行55)一路n,来到代码行126)一路rn(反向执行),来 阅读全文
摘要:
1. 概要: 1). jump/j 行号,如果该行号有断点,则停止,如果没有断点,则继续执行,直到遇到断点或者程序终止 2). 可以跳转到其他函数,但是强烈不建议跳转到其他函数(因为这么跳转通常会导致程序异常终止) 2. 例子: 1)首次要断点的代码行20 2)要重复执行的代码片段3)重复执行的时候 阅读全文
摘要:
1)加载无符号表程序 2)断点到某一个函数,通过tab键可以模糊匹配查找要断点的函数3)运行程序4)查看第一个参数寄存器:i r rdi,我们传入的是字符a,可以看到查看到的值是97(字符a的ascii),符合预期。5)查看第二个参数寄存器:i r rsi,我们传入的是整数876,可以看到查看到的值 阅读全文
摘要:
1. 修改寄存器,跳过某些行代码 1)代码行10,要打断点的代码 2)代码行12,在行10下一步后,希望进入代码行12(跳过执行代码行11)3)期望代码行13输出0(因为代码行10没有执行,所以c的值仍然为原始值) 4)在行10打断点5)在程序run起来后,程序停在行10,查看行10的地址:i li 阅读全文