使用lldb调试器显示指针值

时间:2013-12-06 17:52:47

标签: c++ c debugging lldb

我正在开发一个开源技术的个人项目,开发一个用C构建的应用程序。我正在使用 lldb 调试工具。

我的问题很简单:在调试时如何显示或显示元素的值。

例如:

#include <iostream.h>

int main(){

 char phrase[1024];
 int i=0;

 for(i=0;i<1024;i++){
    printf("%c",phrase[i]);
 }
 return 0;
}

在lldb提示符下,我可以看到数组特定字符的值:

lldb>b 6
lldb>frame variable phrase[0];

当我想执行时:

lldb>frame variable phrase[i]

我收到错误:“无法找到与'phrase [i]'匹配的任何变量表达式路径”

1 个答案:

答案 0 :(得分:1)

您需要使用

(lldb) expr phrase[i]

或等效

(lldb) p phrase[i]

表示

frame变量支持常量索引(即普通ol'数字),但是如果你需要使用变量或任何数字,那么你需要使用表达式命令

作为一个警告,在执行类似数组的访问时,frame var与expression的行为在某些情况下可能会有所不同。这不会影响您的示例(例如,如果您使用的是std :: vector,则可能会这样。)