0
私は、私はインターネットでこのためのマクロを見つけ 、いくつかのQString変数を調べたい:gdbユーザ定義関数:複雑な引数を渡す方法?
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
しかし、私はそれを使用しようとすると、私は、このようなエラーを得た:
(gdb) printqstring ((MyWidget *)0xd98cb0)->caption_
A syntax error in expression, near `,((MyWidget.d->size'.
私がしようとした場合
(gdb) printf "(QString)0x%x (length=%i): \"",&((MyWidget *)0xd98cb0)->caption_,((MyWidget *)0xd98cb0)->caption_.d->size
(QString)0xd98ccc (length=3)
どのように複雑な引数をgdbマクロに渡すことができますか?
関連性がありますhttp://tromey.com/blog/?p=501 –