大家好,请问linux gdb如何查看指定地址的内存。

时间:2021-02-09 04:42:02
大家好,我用gdb调试,得到了一个内存地址0xabcdef, 我知道这个地址中存储的是字符串,所以,我想用gdb命令产看0xabcdef中的字符串内容,请指教,谢谢!

5 个解决方案

#1


print *((int*)0xabcdef)

#2


哦哦,字符串内容,不知道。

#3


没有人知道么 ???????

#4


这种东西要自己查下手册,  gdb里面敲  help 
(gdb) help printf
printf "printf format string", arg1, arg2, arg3, ..., argn
This is useful for formatted output in user-defined commands.


我猜是  printf "%s"  0xabcdef



x 命令应该也可以的,

(gdb) help x
Examine memory: x/FMT ADDRESS.
ADDRESS is an expression for the memory address to examine.
FMT is a repeat count followed by a format letter and a size letter.
Format letters are o(octal), x(hex), d(decimal), u(unsigned decimal),
  t(binary), f(float), a(address), i(instruction), c(char) and s(string).
Size letters are b(byte), h(halfword), w(word), g(giant, 8 bytes).
The specified number of objects of the specified size are printed
according to the format.

Defaults for format and size letters are those previously used.
Default count is 1.  Default address is following last thing printed
with this command or "print".

#5


引用 1 楼 qq120848369 的回复:
print *((int*)0xabcdef)

楼主,这就是答案了……你还找什么?

#1


print *((int*)0xabcdef)

#2


哦哦,字符串内容,不知道。

#3


没有人知道么 ???????

#4


这种东西要自己查下手册,  gdb里面敲  help 
(gdb) help printf
printf "printf format string", arg1, arg2, arg3, ..., argn
This is useful for formatted output in user-defined commands.


我猜是  printf "%s"  0xabcdef



x 命令应该也可以的,

(gdb) help x
Examine memory: x/FMT ADDRESS.
ADDRESS is an expression for the memory address to examine.
FMT is a repeat count followed by a format letter and a size letter.
Format letters are o(octal), x(hex), d(decimal), u(unsigned decimal),
  t(binary), f(float), a(address), i(instruction), c(char) and s(string).
Size letters are b(byte), h(halfword), w(word), g(giant, 8 bytes).
The specified number of objects of the specified size are printed
according to the format.

Defaults for format and size letters are those previously used.
Default count is 1.  Default address is following last thing printed
with this command or "print".

#5


引用 1 楼 qq120848369 的回复:
print *((int*)0xabcdef)

楼主,这就是答案了……你还找什么?