xcode12 llvm 调试QString

默认不支持显示QString,需要对QString进行注册。

1、home目录下新建.lldb文件夹,放入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、home目录下创建.lldbinit文件,内容如下:

command script import ~/.lldb/qstring.py

3、重启xcode,编译成功后lldb窗口可见 registering QString,大功告成。

 

转载大佬地址:https://github.com/tgebarowski/lldb-scripts

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值