zoukankan      html  css  js  c++  java
  • 在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

  • 相关阅读:
    JS 随机整数
    微信小程序 功能函数 支付接口
    JS 正则表达式
    JS 日期 自动补齐 “2017-11-22 14:43”
    schema get_ddl
    StringBuffer 清空
    java中split任意数量的空白字符
    美国法官工资
    纪检委,检察院的工资
    国家司法机构
  • 原文地址:https://www.cnblogs.com/vectorli/p/4769031.html
Copyright © 2011-2022 走看看