2017-04-14 9 views
0

GDB whatisは変数の型を返します。 この結果を変数としてどのように使用するのだろうか。GDBはwhatisの返り値から変数を設定します

(gdb) whatis myIntValue 
int 
(gdb) set $typeInt = whatis myIntValue // it's impossible but what I want 
(gdb) p *($typeInt)0xabcd // this address having an int value 

上記のキャストを汎用メモリアドレスからテンプレートクラスタイプ(非常に長い名前)に使用したいと思います。

キャストの種類が非常に異なるため、デバッグ中にすべての名前を1つずつ入れるのは難しいです。

答えて

1

便利な変数に型を割り当てる方法はありません。ただし、コンビニエンス変数に値を保存し、その後typeofを使用してこれを行うことができます。

(gdb) set $x = 23ll 
(gdb) ptype $x 
type = long long 
(gdb) ptype (typeof($x))'z' 
type = long long 
+0

ありがとうございました! :この答えを見て幸せ!もはやctrl c + v! – jay

関連する問題