关于 MinGW gdb 调试 qt程序用printqstring 来显示的设置。

   一直以来不太喜欢暴风语音,广告太多了,所以转而用开源SMPlayer 觉得蛮好用的。

但是发觉播放列表有老去读取播放文件里名称,而不读取文件名。

所以动手改了一下,但是发现调试有点难,因为用gdb print 无法显示 QString

到网上找了一些资料,说的不够详细。大致都说.gdbinit拷贝$HOME目录下,

尝试了一下,不行。

    后来看到一段英文,如下:

for windows user:
if one needs a general accessible .gdbinit file, do the following:

create an environment variable
set HOME=%HOMEDRIVE%%HOMEPATH%
copy .gdbinit %HOME%

the HOME variable must existing during execution time of gdb,
so put it in autoexec.bat or environment settings under XP


quick summary of solution for
no-console window while debugging with dgb-6.3

create file ".gdbinit"
--------.gdbinit-------------------START-------
set new-console on
--------.gdbinit--------------------END--------


store this file in user directory:  "%HOMEDRIVE%%HOMEPATH%"

complete filepath: "%HOMEDRIVE%%HOMEPATH%/.gdbinit"

environment setting :
set HOME=%HOMEDRIVE%%HOMEPATH%

相信大家都能看懂以上英文。大概就说 windows 下,要新建一个环境变量 HOME,

HOME变量路径要求:1.要有gdb.exe。2.要有.gdbinit文件

这样就可以用.gdbinit 来配置 gdb 宏

.gdbinit 内容如下:

define printqstring
    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

 

 

展开阅读全文

没有更多推荐了,返回首页