检查内存地址的数据
形式:x/count fmt size address
count
:整数,默认为 1
fmt
:
- a | Address 地址
- i | Instruction 指令
- t | Binary 二进制
- o | Octal 八进制
- h/x | Hex 十六进制
- z | Hex,zero padded 十六进制,填充 0 对齐
- d | Decimal 十进制
- u | Unsigned decimal 无符号十进制
- f | Float 浮点
- c | Char 字符
- s | String 字符串
size
:
- b | 8 bits - byte
- h | 16 bits - halfword
- w | 32 bits - word
- g | 64 bits - giant
读取内存
- gdb
- lldb
(gdb) x [ADDRESS]
(lldb) memory read [ADDRESS]
(lldb) x [ADDRESS]
读取若干十六进制的内存
- gdb
- lldb
(gdb) x/4xw 0xbffff3c0
(lldb) memory read --size 4 --format x --count 4 0xbffff3c0
(lldb) me r -s4 -fx -c4 0xbffff3c0
(lldb) x -s4 -fx -c4 0xbffff3c0
# LLDB now supports the GDB shorthand format syntax but there can’t be space after the command:
(lldb) memory read/4xw 0xbffff3c0
(lldb) x/4xw 0xbffff3c0
(lldb) memory read --gdb-format 4xw 0xbffff3c0
从内存指定地址读取若干字节,并保存到本地文件
- gdb
- lldb
(gdb) set logging on
(gdb) set logging file /tmp/mem.txt
(gdb) x/512bx 0xbffff3c0
(gdb) set logging off
(lldb) memory read --outfile /tmp/mem.txt --count 512 0xbffff3c0
(lldb) me r -o/tmp/mem.txt -c512 0xbffff3c0
(lldb) x/512bx -o/tmp/mem.txt 0xbffff3c0
从内存指定地址范围读取字节,并保存到本地文件
- gdb
- lldb
(gdb) dump memory /tmp/mem.bin 0x1000 0x2000
(lldb) memory read --outfile /tmp/mem.bin --binary 0x1000 0x2000
(lldb) me r -o /tmp/mem.bin -b 0x1000 0x2000