如何在lldb中打印例如1000-1073之间的std :: vector中的条目。
例如下面的代码:
1
2 #include <numeric>
3 #include <vector>
4
5 using namespace std;
6
7 int main() {
8 vector<int> v(100000);
9 std::iota(v.begin(), v.end(), 3);
-> 10 return 0;
11 }
(lldb)
我想看看v [1000]-v [1073]
答案 0 :(得分:1)
在lldb变量打印中没有子范围运算符。但是您可以使用Python API非常简单地完成这种事情。例如:
(lldb) script
Python Interactive Interpreter. To exit, type 'quit()', 'exit()' or Ctrl-D.
>>> for i in range(2,6):
... print(lldb.frame.GetValueForVariablePath("int_vec[%d]"%(i)))
...
(int) [2] = 3
(int) [3] = 4
(int) [4] = 5
(int) [5] = 6
您也可以编写一些命令轻松完成此操作。参见:
https://lldb.llvm.org/use/python-reference.html#create-a-new-lldb-command-using-a-python-function
有关执行此操作的详细信息,并且:
https://lldb.llvm.org/python_reference/index.html
有关Python API的一般参考。