无法在 gdb 中找到更改的内存内容
Failed to find changed memory content in gdb
我正在调试 x86
32bit
二进制程序。而当我尝试执行下面的指令时,在使用gdb
调试时,我在buf
对应的内存中找不到任何内存更新。 ( buf
分配在 .bss
部分)。
...
movl [=10=]x4E713,buf(,%eax,0x4)
add [=10=]x1,%eax
...
当我在gdb
中执行上面的代码时,我做了这些:
x/10x &buf
令我惊讶的是,即使执行了上面的代码,buf
的内容仍然是这样的(假设eax
的值为零):
0xf7fb6ef0 <buf>: 0x00000000 0x00000000 0x00000000 0x00000000
0xf7fb6f00 <buffer>: 0x00000000 0x00000000 0x00000000 0x00000000
0xf7fb6f10 <buffer>: 0x00000000 0x00000000
地址 0xf7fb6ef0
不包含值 0x4e713
吗?
我清楚了吗?谁能给我一些帮助?
您看到的 buf
可能指的是另一个同名符号,或者 gdb 以某种方式获取了错误的地址。反汇编gdb中的指令,验证实际地址。
你也可以试试info variables ^buf$
我正在调试 x86
32bit
二进制程序。而当我尝试执行下面的指令时,在使用gdb
调试时,我在buf
对应的内存中找不到任何内存更新。 ( buf
分配在 .bss
部分)。
...
movl [=10=]x4E713,buf(,%eax,0x4)
add [=10=]x1,%eax
...
当我在gdb
中执行上面的代码时,我做了这些:
x/10x &buf
令我惊讶的是,即使执行了上面的代码,buf
的内容仍然是这样的(假设eax
的值为零):
0xf7fb6ef0 <buf>: 0x00000000 0x00000000 0x00000000 0x00000000
0xf7fb6f00 <buffer>: 0x00000000 0x00000000 0x00000000 0x00000000
0xf7fb6f10 <buffer>: 0x00000000 0x00000000
地址 0xf7fb6ef0
不包含值 0x4e713
吗?
我清楚了吗?谁能给我一些帮助?
您看到的 buf
可能指的是另一个同名符号,或者 gdb 以某种方式获取了错误的地址。反汇编gdb中的指令,验证实际地址。
你也可以试试info variables ^buf$