我正在使用LLDB,想知道如何打印特定内存地址的内容,例如0xb0987654。
为了补充迈克尔的答案。
我倾向于使用:
memory read -s1 -fu -c10000 0xb0987654 --force
这将在调试器中打印。
希望这可以帮到你。
x/16 0xb0987654
me
"是您要查找的命令。
例如,此lldb命令:me -r -o /tmp/mem.txt -c512 0xb0987654
将从您的内存地址复制512字节到/tmp/mem.txt文件中。
lldb-1200.0.44.2
,并且我不得不稍微修改一下命令:me read -o /tmp/mem.txt -c512 0xb0987654
。 - neuralmer以下是一种在lldb中显示固定长度的类型数组的简单技巧。如果您的程序包含一个指向9个元素的long*变量,您可以声明一个包含9个long值的固定数组的结构体类型,并将指针转换为该类型:
long *values = new long[9]{...};
(lldb) expr typedef struct { long values[9]; } l9; *(l9 *)values
(l9) $1 = {
values = {
[0] = 0
[1] = 1
[2] = 4
[3] = 9
[4] = 16
[5] = 25
[6] = 36
[7] = 49
[8] = 64
}
}
在C编程中,我使用typedef,但在C++中不需要。
print *(int*)0xb0987654
吗? - Basile Starynkevitchgdb
,也许通过从源代码编译它)。 - Basile Starynkevitch