2013-06-23 3 views
0

문제점 : 개체에 대한 요약을 만든이의 사소한 부스트 :: intrusive_ptr를 생각하자 (나는 더 복잡한, 그래서 이것은 단지 예이다) 내가 가지고있는 경우 지금lldb - 요약없이 개체를 인쇄하는 방법?

:

boost::intrusive_ptr<MyClass> pobj; 

와 나는 내가 MyClass에 대한 요약을 볼 수 있습니다

p pobj 
콘솔에서 입력합니다.

하지만 내부 px 멤버 인 pobj.px를보고 싶다면 어떻게해야합니까? 범주에

  • 넣어 요약 한 후 일시적으로 비활성화 그것 (불편)
  • 프레임 변수 -y0 이 두 번째가 이상적 일 것이다,하지만 내가 원하는 경우 어떻게 할 것인지 :

    나는 두 가지 방법을 알고 표현의 결과를보기 위해서? P는 MyObj.GetContents.GetSmartPtr() 같은 것이

이미 같은 시도했습니다입니다 :

frame variable -Y0 $0 

을하지만이 작동하지 않습니다.

Xcode 4.6.3을 사용합니다.

요약을 사용 중지하는 방법이 있습니까? 아마 이것이 XCode 5 또는 최신 lldb에서 치유 되었다면 아는 사람일까요?

답변

0

frame variable -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_ = { 
     = { 
[...] 

갱신는 : OP는 그가 편리 변수, 예를 들어,의 값에 있다고 명확히 std :: string foo() {std :: string ("hi there")를 반환합니다. }

(lldb) p foo() 
(std::string) $0 = "hi there" 

및 서식없이 $0을 확인하고 싶어 - 그리고 이것은 expression (일명 p) 명령을 통해 갈 필요하므로 frame variable는 편리 변수에 액세스 할 수 없습니다. 이 경우 일시적으로 형식을 사용 중지하는 것이 유일한 해결책입니다. type category disable libcxx이 사람이하는 것을 피하려고합니다.

+0

이것은 표현식에 도움이되지 않습니다. 즉, 'test'는 없지만 std :: string은 함수의 결과로 반환됩니다. –

+0

Top-of-Tree 오픈 소스 LLDB에는 -R (-raw-output) 플래그가 있습니다 –

관련 문제