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

  • 相关阅读:
    图像
    链接
    列表
    常见的文本标签
    注释有哪些作用?你会用使用注释来做什么?
    如何使用浏览器查看源代码?查看源码的快捷方式是什么?
    编辑HTML源代码
    <html>,<head>,<body>,<title>的作用
    HTML中的标签和属性
    记录Git的安装过程
  • 原文地址:https://www.cnblogs.com/vectorli/p/4769031.html
Copyright © 2011-2022 走看看