2013-07-30 10 views
5

私は、このようなGDBの便利な変数を配列として宣言できますか?

set $list[10] 

として、配列コンビニエンス変数を宣言したいと思いますが、私は構文エラーを取得します。

便利な変数を使用してベクトルを作成することはできますか?

GDBがターゲットプログラムが使用しない絶対領域メモリを見つけることができれば、私はポインタを使うことができました。

ああ、私はターゲットプログラムのシンボルテーブルを持っていません。私はGDBと互換性のないコンパイラを使ってデバッグしています。

私が持っているGDBのクロスターゲットバージョンは、Pythonをサポートしていません。

答えて

2

あなたが下位のメモリを割り当てる場合にのみ可能だと思います。つまり、次のように試してみてください:

set $list = (int *) malloc (10 * sizeof (int)) 

タイプを変更してください。

もう1つの同様のオプションは、{...}機能を使用することです。私はよく分かりませんが、場合によってはこれが下位の記憶を割り当てるかもしれないと思います。とにかく、試してみてください。

print {1,2,3,4}[2] 

を私は{...}機能を試してみましょう

$1 = 3 
+0

を取得します。私はシンボルテーブルを持たないのでmalloc()を使うことができないので、gdbはmalloc()がどこにあるか分からない。便利な変数$ Mallocをマップからmallocのアドレスで作成することができました。それはうまくいくかもしれない。 – KeithSmith

+0

あなたが使用可能なアドレスを持っているなら、{TYPE}キャストを使って他のもののように扱うことができます。次に例を示します。set $ var = {int [4]}&main。または、そのようなものは、マニュアルを参照してください - 私はこの拡張機能の正確な構文を覚えている。 –

+0

@TomTromey私はそれが手動で推論のメモリを割り当てることによってのみ可能だとは思わない。 Look:コード 'set $ test =" Hello "'、 'p perror($ test)'はうまく動作します。あなたもの住所を取ることができます。 –

関連する問題