繁体   English   中英

LLDB C ++调试

[英]LLDB C++ debugging

我是LLDB的新手,我在我的代码中处理各种std::vector ,但是当我尝试打印向量的值或用expr '(int)myVector[0]'查询向量的大小时expr '(int)myVector[0]'expr '(int)myVector.size()'调试器打印的值与我在向量中知道的值无关。

当我正在学习使用命令行和LLDB进行调试时,我确定我在这里遗漏了一些东西,有人能发现我的错误或给出一些建议吗?

编辑忘了说我在OS X Mavericks下安装了最新的命令行工具。

我自己找到了答案。 显然,像[]这样的重载运算符是不允许的,因为它们是内联的, 请参阅此问题以获得更好的解释。

而且,我不知道为什么我把单引号用于我想要评估的语句(我很确定我在其他地方看到它......它们在LLDB中实际意味着什么?)就像这样expr'printf expr 'printf("Hey")'

因此,在引用的问题中取出引号并使用答案就足够了

expr (int) myVector.__begin_[0]

获取向量中位置的单个值。

使用p myVectorpo myVector 这些将以几种不同的格式打印出矢量的内容(以及大小)。

要从向量中打印单个值,可以使用类似p (int)myVector[0]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM