我正在开发一个开源技术的个人项目,开发一个用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]'匹配的任何变量表达式路径”
答案 0 :(得分:1)
您需要使用
(lldb) expr phrase[i]
或等效
(lldb) p phrase[i]
表示
frame变量支持常量索引(即普通ol'数字),但是如果你需要使用变量或任何数字,那么你需要使用表达式命令
作为一个警告,在执行类似数组的访问时,frame var与expression的行为在某些情况下可能会有所不同。这不会影响您的示例(例如,如果您使用的是std :: vector,则可能会这样。)