如何使用lldb在0xb0987654中打印内存?

Ada*_*Lee 42 xcode lldb

我正在使用LLDB,我想知道如何在内存0xb0987654中打印该值?

Eri*_*ric 61

Xcode有一个非常好的Memory Browser窗口,它可以很好地显示内存地址的内容.它还允许您控制字节分组和显示的字节数,并向后或向前移动内存页:

在此输入图像描述

您可以按⌘^⌥⇧M(Xcode 9及更早版本中的⌘⇧M)访问它

要么

调试 - >调试工作流程 - >查看内存

注意左下角的字段,您可以粘贴要检查的内存地址!

文档:https://developer.apple.com/library/ios/recipes/xcode_help-debugger/articles/viewing_memory.html

相关答案:如何在Xcode 4中打开内存浏览器?


Kha*_*azi 48

补充迈克尔的答案.

我倾向于使用:

memory read -s1 -fu -c10000 0xb0987654 --force
Run Code Online (Sandbox Code Playgroud)

这将在调试器中打印.

  1. -s用于字节分组,因此例如对uint8使用1,对int使用4
  2. -f表示格式.我天生就忘记了正确的符号.只需将语句与-f放在一起,它就会回显给您,并为您提供所有选项的列表
  3. -c用于字节数
  4. 如果要打印超过1024个字节,请附加--force

希望这可以帮助.


lbs*_*eek 10

例如,长度为 16x4 字节的打印内存。

x/16  0xb0987654
Run Code Online (Sandbox Code Playgroud)


Mic*_*ann 9

" me"是你正在寻找的命令.

例如,这个lldb命令:

me -r -o /tmp/mem.txt -c512 0xb0987654
Run Code Online (Sandbox Code Playgroud)

将从您的内存地址复制512个字节到/tmp/mem.txt文件中.