资源介绍
15.1、修改变量值
修改被调试程序运行时的变量值,在 GDB中很容易实现,使用 GDB的 print
命令即可完成。如:
(gdb) print x=4
x=4这个表达式是 C/C++的语法,意为把变量 x的值修改为 4,如果你当
前调试的语言是 Pascal,那么你可以使用 Pascal的语法:x:=4。
在某些时候,很有可能你的变量和 GDB中的参数冲突,如:
(gdb) whatis width
type = double
(gdb) p width
$4 = 13
(gdb) set width=47
Invalid syntax in expression.
因为,set width是 GDB的命令,所以,出现了“Invalid syntax in expression”
的设置错误,此时,你可以使用 set var命令来告诉 GDB,width不是你 GDB的
参数,而是程序的变量名,如:
(gdb) set var width=47
另外,还可能有些情况,GDB并不报告这种错误,所以保险起见,在你
改变程序变量取值时,最好都使用 set var格式的 GDB命令。
15.2、跳转执行
一般来说,被调试程序会按照程序代码的运行顺序依次执行。GDB 提供了
乱序执行的功能,也就是说,GDB 可以修改程序的执行顺序,可以让程序执行
随意跳跃。这个功能可以由 GDB的 jump命令来完:
jump
指定下一条语句的运行点。可以是文件的行号,可以是 file:line
格式,可以是+num这种偏移量格式。表式着下一条运行语句从哪里开始。
jump
- 上一篇: 强制函数返回-故障注入测试
- 下一篇: sigsuspend函数-数据流图到模块结构图的直接转换方法