在gdb中打印QString

来源:互联网 发布:java string 中文乱码 编辑:程序博客网 时间:2024/06/05 01:54

转载自:http://blog.sina.com.cn/s/blog_6234a2f00100fkvx.html

在gdb中打印QString

GDB的print命令只能打印基本数据类型,像QString这样的复杂类型就不行了。<br>

如果在调试过程中(命令行,或者xcode中)不能看QString的值,岂不是很不爽。幸好,gdb提供了扩展功能,可以自定义宏命令。<br>
把自定义的命令放到$HOME/.gdbinit文件中,每次启动gdb时就可以自动加载了。<br>
<br>
下面的代码是从网上摘录的,直接复制到$HOME/.gdbinit文件中就可以了。原文(http://silmor.de/46)<br>
    defineprintqstring
       printf "(QString)0x%x (length=%i):\"",&$arg0,$arg0.d->size
       set $i=0
       while $i < $arg0.d->size
           set $c=$arg0.d->data[$i++]
           if $c < 32 || $c > 127
                   printf "\\u0x%04x", $c
           else
                   printf "%c", (char)$c
           end
       end
       printf "\"\n"
    end

使用方法与print一样。 <br>



原创粉丝点击