ran*_*ano 2 c++ debugging shared-ptr lldb
在我的代码中有这样的东西:
shared_ptr<vector<unsigned int>> f =
make_shared<vector<unsigned int>>();
Run Code Online (Sandbox Code Playgroud)
我怎样才能打印出我只能访问shared_ptr对象的向量
frame variable f
Run Code Online (Sandbox Code Playgroud)
和
frame variable f.__ptr_->size()
call to a function 'std::__1::vector<unsigned long, std::__1::allocator<unsigned long> >::size() const' that is not present in the target
Run Code Online (Sandbox Code Playgroud)
得到这个错误?
鉴于此代码段:
#include <vector>
#include <memory>
using namespace std;
int main()
{
shared_ptr<vector<unsigned int> > f =
make_shared<vector<unsigned int> >();
f->push_back(1);
f->push_back(1);
f->push_back(1);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
LLDB对我有用:
(lldb) fr var
(std::__1::shared_ptr<std::__1::vector<unsigned int, std::__1::allocator<unsigned int> > >) f = 0x00000001001038c8 size=3 (strong=1 weak=1) {
__ptr_ = 0x00000001001038c8 size=3
}
Run Code Online (Sandbox Code Playgroud)
更好的是,如果我展开_ _ptr_:
(lldb) fr var --ptr-depth=2
(std::__1::shared_ptr<std::__1::vector<unsigned int, std::__1::allocator<unsigned int> > >) f = 0x00000001001038c8 size=3 (strong=1 weak=1) { __ptr_ = 0x00000001001038c8 size=3 {
[0] = 1
[1] = 1
[2] = 1 } }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1848 次 |
| 最近记录: |