Xcode lldb-如何打印没有摘要的对象?
问题:我已经为我的对象创建了一个摘要,让我们想想一个微不足道的boost::intrusive_ptr(我有更复杂的,所以这只是一个例子) 现在如果我有:Xcode lldb-如何打印没有摘要的对象?,xcode,xcode4,lldb,Xcode,Xcode4,Lldb,问题:我已经为我的对象创建了一个摘要,让我们想想一个微不足道的boost::intrusive_ptr(我有更复杂的,所以这只是一个例子) 现在如果我有: boost::intrusive_ptr< MyClass > pobj; 我来看看我的课程总结 但是,如果我想看到它的内部px成员-即pobj.px,该怎么办 我知道两种方法: 将摘要放入类别,然后临时禁用它(不方便) 帧变量-Y0 这一秒是理想的,但是如果我想看到一个表达式的结果,该怎么办呢? 这类似于p MyObj.G
boost::intrusive_ptr< MyClass > pobj;
我来看看我的课程总结
但是,如果我想看到它的内部px成员-即pobj.px,该怎么办
我知道两种方法:
- 将摘要放入类别,然后临时禁用它(不方便)
- 帧变量-Y0 这一秒是理想的,但是如果我想看到一个表达式的结果,该怎么办呢? 这类似于p MyObj.GetContents.GetSmartPtr()
frame variable -Y0 $0
但这不起作用
我使用XCode 4.6.3
有没有办法关闭摘要?
可能有人知道这是在XCode 5还是最新的lldb中解决的?您可以使用
帧变量-R
查看原始信息
(lldb) fr v test
(std::__1::string) test = "hi there"
(lldb) fr v -R test
(std::__1::string) test = {
__r_ = {
std::__1::__libcpp_compressed_pair_imp<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::__rep, std::__1::allocator<char> > = {
__first_ = {
= {
[...]
并且希望查看
$0
,而不进行任何格式设置,并且帧变量
无法访问方便变量,因此需要通过表达式
(akap
)命令进行查看。在这种情况下,我知道的唯一解决办法是暂时禁用格式,例如type category disable libcxx
,这是此人希望避免的操作。这对表达式没有帮助。也就是说,如果没有“test”,但std::string只是作为函数的结果返回
(lldb) fr v test
(std::__1::string) test = "hi there"
(lldb) fr v -R test
(std::__1::string) test = {
__r_ = {
std::__1::__libcpp_compressed_pair_imp<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::__rep, std::__1::allocator<char> > = {
__first_ = {
= {
[...]
(lldb) p foo()
(std::string) $0 = "hi there"