我知道我们可以使用几个命令来访问和读取内存:例如,打印,p,x.
但是,如何在任何特定位置(在GDB中调试时)更改内存内容?
发布于 2018-05-10 11:36:43
正如Nikolai所说,可以使用gdb‘set’命令来更改变量的值。
还可以使用“set”命令更改内存位置。扩展Nikolai的例子:
(gdb) l
6 {
7 int i;
8 struct file *f, *ftmp;
9
(gdb) set variable i = 10
(gdb) p i
$1 = 10
(gdb) p &i
$2 = (int *) 0xbfbb0000
(gdb) set *((int *) 0xbfbb0000) = 20
(gdb) p i
$3 = 20
这应该适用于任何有效的指针,并且可以转换为任何适当的数据类型。
https://stackoverflow.com/questions/-100004060
复制相似问题