LLDB C++ debugging
LLDB C++ debugging
我是LLDB的新手,我正在代码中使用各种std::vector
,但是当我尝试打印向量的值或使用诸如expr '(int)myVector[0]'
或expr '(int)myVector.size()'
之类的东西查询向量的大小时,调试器会打印与我知道的向量中的值无关的值。
当我学习使用命令行和LLDB进行调试时,我确定我在这里遗漏了一些东西,任何人都可以发现我的错误或给出一些建议吗?
编辑 忘了说我在安装了最新命令行工具的OS X Mavericks下。
我自己找到了答案。显然,像[]
这样的重载运算符是不允许的,因为它们是内联的,请参阅此问题以获取更好的解释。
此外,我不知道为什么我为我想评估的语句加上单引号(我很确定我在其他地方看到了它......它们在LLDB中的实际含义是什么?像这样expr 'printf("Hey")'
因此,去掉引号并在引用的问题中使用答案就足够了,
例如 expr (int) myVector.__begin_[0]
获取向量中仓位的单个值。
使用 p myVector
或 po myVector
。这些将以几种不同的格式打印出矢量的内容(以及大小(。
要从向量打印单个值,可以使用类似 p (int)myVector[0]
.
相关文章:
- "Unable to start debugging. No process is associated with this object." - 在Visual Studio Code中使用GDB
- VS2019 - Sudo Remote Debugging on Linux with Cmake project
- JNI c++ Netbeans Debugging
- 在 C++/CLI/C# 项目中启用"Native Code Debugging"导致应用程序崩溃
- Debugging ofstream.(C++)
- 为什么"Start Debugging"比VC2010中的"attach to process"慢得多?
- Visual C++ CRT debugging
- 为什么两个"Start (Without) Debugging"(F5 和 Ctrl+F5)都不创建 CppUnit *.xml 报告文件?
- QtWebEngine debugging
- Debugging CUDA - CudaUnknownError
- Debugging Boost.Test in Eclipse:debugger 不会在断点处停止
- Visual Studio 2012 express debugging
- Visual C++ CRT debugging
- LLDB C++ debugging
- C++ and Valgrind Debugging
- Debugging a DEQUE of char[4][4]
- CPPUTest debugging - C++
- c++ /Debugging (AIX上的c++)导致分段错误的递归快速排序
- Debugging DirectShow Filter
- OpenCV debugging