I am using Mac OS X Version 10.7.4The following is the lldb output:






(lldb) frame variable x
(std::__1::wstring) x = {
  __r_ = {
    std::__1::__libcpp_compressed_pair_imp<std::__1::basic_string<wchar_t, 
std::__1::char_traits<wchar_t>, std::__1::allocator<wchar_t> >::__rep, 
std::__1::allocator<wchar_t> > = {
      __first_ = {
         = {
          __l = {
            __cap_ = 17
            __size_ = 12
            __data_ = 0x00000001001009c0
          }
          __s = {
             = {
              __size_ = '\x11'
              _ = \x11\0\0\0
            }
            __data_ = {
              [0] = \0\0\0\0
              [1] = \f\0\0\0
              [2] = \0\0\0\0
              [3] = \xc0\t\x10\0
              [4] = \x01\0\0\0
            }
          }
          __r = {
            __words = {
              [0] = 17
              [1] = 12
              [2] = 4296018368
            }
          }
        }
      }
    }
  }
}
(lldb) 
Thanks,PA
Date: Mon, 6 Aug 2012 11:24:48 +0200
From: [email protected]
To: [email protected]
Subject: Re: [lldb-dev] Formatter for std::shared_ptr<std::wstring>


  
    
  
  
    Hmm, thats strange.

      

      I'm currently using not the latest lldb, so maybe something
      changed.

      

      What platform are you developing on? The script is written for
      osx.

      

      Maybe you can just send me the output of "frame variable x"
      without having the script installed. Maybe the structure of your
      strings differ.

      

      

      N. 

      

      Am 06.08.12 10:54, schrieb Alexander Angriawan:

    
    
      
      Thank you Nino.
        

          
          Unfortunately the script doesn't
              work in my environment.
          GetByteSize() always return 0 in
              my case.
          

            
          ....
          
                        if _M_p_data.GetByteSize() == 1:
                            _M_p_deref =
                _M_p_data.GetUnsignedInt8(e, 0)    # utf-8
                        elif
                _M_p_data.GetByteSize() == 2:
                            _M_p_deref =
                _M_p_data.GetUnsignedInt16(e, 0)   # utf-16
                        elif
                _M_p_data.GetByteSize() == 4:
                            _M_p_deref =
                _M_p_data.GetSignedInt32(e, 0)     # utf-32
                        else:
                            _M_p_deref = -1
                        
                        if _M_p_deref <= 0:
                         break
          
          ----
          

          
          My simple
            test code:
          

          
          
            int main(int argc, const
              char * argv[])
            {
                std::wstring x = L"fooo";
                return 0;
            }
          
          

          
          ---
          JA
          

          
          

          
          

          
          

          
          

            
              Date: Mon, 6 Aug 2012 09:54:09 +0200

              From: [email protected]

              To: [email protected]

              CC: [email protected]

              Subject: Re: [lldb-dev] Formatter for
              std::shared_ptr<std::wstring>

              

              Oh,

                

                I've seen, that the script attached to the mail is not
                on the server, so I attached it again, although it would
                be better to have it in the lldb svn.

                

                Yust copy the script to your hom directory and ad the
                folowing line to your .lldbinit

                

                script sys.path[:0] = [os.path.expanduser('~')]

                command alias pwd script print os.getcwd()

                script import wstring

                type summary add --python-function
                wstring.wstring_summary "std::wstring"

                type summary add --python-function
                wstring.wstring_summary "std::basic_string<int, class
                std::char_traits<int>, class
                std::allocator<int> >"

                type summary add --python-function
                wstring.wstring_summary "std::basic_string<unsigned
                short, class std::char_traits<unsigned short>,
                class std::allocator<unsigned short> >"

                type summary add --python-function
                wstring.wstring_summary "std::basic_string<wchar_t,
                class std::char_traits<wchar_t>, class
                std::allocator<wchar_t> >"

                

                

                Cheers, Nino

                

                Am 06.08.12 09:19, schrieb Alexander Angriawan:

              
              
                
                
                  Hello,
                  

                    
                  I am looking to write data
                      formatter for std::shared_ptr<std::wstring>.
                  

                    
                  I found the following old
                      article but this doesn't seem to work.
                  I have ver 159 installed.
                  
http://lists.cs.uiuc.edu/pipermail/lldb-dev/2012-February/000825.html
                  

                    
                  Any idea?
                  

                  
                  Thank you much,
                  PA
                
                

                
                

                _______________________________________________
lldb-dev mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev

              
              

            
          
        
      
    
    
                                          
_______________________________________________
lldb-dev mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev

Reply via email to