C プログラムのデバッグ中に python2.6 の gdb モジュールを使用しており、インスタンスの「.Type」に基づいて gdb.Value インスタンスを Python 数値オブジェクト (変数) に変換したいと考えています。
たとえば、C プログラムSomeStruct->some_float_val = 1./6;
を を介して Python gdb.Value に変換しsfv=gdb.parse_and_eval('SomeStruct->some_double_val')
ますが、これを倍精度浮動小数点の Python 変数に変換します。そのことstr(sfv.type.strip_typedefs())=='double'
と、そのサイズが 8B であることを知っているため、dbl=float(str(sfv))
またはを使用して文字列を変換するだけValue.string()
ではなく、struct
正しい double 値を取得するために使用するバイト。
私の検索ポイントから返されたすべてのリンクはhttps://sourceware.org/gdb/onlinedocs/gdb/Values-From-Inferior.html#Values-From-Inferiorですが、 Value インスタンスを python に変換する方法がわかりません変数をきれいに、値が C メモリにさえなく、gdb.Value.address を表していたとします (したがって、使用できませんInferior.read_memory()
)。文字列値をキャストせずに、これを Python int に変換するにはどうすればよいでしょうか?