如何用lldb打印参数?

how to print paramters with lldb?

我想使用 lldb 输出传递给函数调用的参数。

使用 AndroidStudio lldb NDK

int aaaaaa(int a, int b) {
    int rrr = a + b; 
    return rrr;
}
   int x = 111;
    int y = 222;
    int eee = aaaaaa(x,y);
 // I know that print x can output the correct result, but I want to 
 // output the result of x through the register, what should I do?

我使用上面的第二个代码来调用函数。我想使用 lldb 打印 x 和 y 值。当我使用 print $ebp+8 时,结果不正确。

如何使用 lldb 命令打印出 111?

正确的 lldb 命令是什么?

这是一张图片link来展示我的意思http://note.youdao.com/noteshare?id=7adb0c6fd965d26553c6bbb05896721c

我不确定你想达到什么目的,所以我可能不会回答你的问题...

但是如果你在此处调用 aaaaaa 的行的开头:

int eee = aaaaaa(x,y);

那么 x 可能还没有被复制到参数传递位置 - 这是属于该源代码行的代码的一部分。您可以查看反汇编来检查这一点。因此,如果您想查看复制到传递位置的值,您将必须在此源代码行中逐步执行指令,以到达将值从堆栈复制到传递的 register/stack 插槽的位置。

否则您可以进入 aaaaaa 并且如果您在进入该函数时立即停止,该值也将仍然位于传递位置。