在Xcode中产看QString的数据

lldb中默认没有对于QString的支持,需要自己添加。

 1. 在用户目录下创建~/.lldb文件夹,并在文件夹中创建`qstring.py`文件。qstring.py中内容为:

import lldb    

    def utf16string_summary(value, *rest):    

       d = value.GetChildMemberWithName("d")    

       length = d.GetChildMemberWithName("size").GetValueAsSigned()    

       offset = d.GetChildMemberWithName("offset").GetValueAsSigned()    

       address = d.GetValueAsUnsigned() + offset    

       if length == 0:    

           return '""'    

       error = lldb.SBError()    

       # UTF-16, so we multiply length by 2    

       bytes = value.GetProcess().ReadMemory(address, length * 2, error)    

       if bytes is None:    

            return '""'    

       return '"%s"' % (bytes.decode('utf-16').encode('utf-8'))    

 

     def __lldb_init_module(debugger, *rest):    

       print "registering QString"    

       summary = lldb.SBTypeSummary.CreateWithFunctionName("qstring.utf16string_summary")    

       summary.SetOptions(lldb.eTypeOptionHideChildren)    

       debugger.GetDefaultCategory().AddTypeSummary( lldb.SBTypeNameSpecifier("QString", False), summary ) 

 

 2. 创建 ~/.lldbinit文件,写入一条命令`command script import ~/.lldb/qstring.py`

 3. 重启Xcode即可生效

 

参考

https://github.com/tgebarowski/lldb-scripts

转载于:https://www.cnblogs.com/vectorli/p/4769031.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值