debugging lldb从变量中读取计数内存

6mzjoqzu  于 2023-02-04  发布在  其他
关注(0)|答案(1)|浏览(134)

是否可以在"memory read" lldb命令中使用变量作为计数?
举个最小的例子:在下面的C程序的return语句中有一个断点

#include <stdio.h>
#include <string.h>

int main(int argc, const char * argv[]) {
    char *str = "Hello";
    size_t len = strlen(str);

    return 0; // <-- Breakpoint here
}

我可以使用以下命令转储字符串变量的内容

(lldb) memory read --count 5 str
0x100000fae: 48 65 6c 6c 6f                                   Hello

但不是

(lldb) memory read --count len str
error: invalid uint64_t string value: 'len'

如何使用len变量的值作为"memory read"命令的计数?

9vw9lbht

9vw9lbht1#

lldb的命令行没有太多语法,但它有一个有用的功能,即如果您将参数或选项值括在反号中,反号中的字符串将被传递给表达式解析器,表达式求值的结果将在传递给命令之前替换反号值。

(lldb) memory read --count `len` str

相关问题