2016-12-22 5 views
0

GDBでデバッグしている間、私は印刷したい本当に大きな変数を持っています。しかし、最初にn行だけを印刷する必要があります。最初のn行を "print" GDBコマンドでどのように印刷できますか? Linuxの "head"コマンドのように。GDBで変数の最初のn行を印刷するには?

特に、変数は構造体/レコードです。

+0

"structure"によると、あなたは "record"を意味しますか? –

答えて

1

AdaをサポートするGDBがあり、非常に大きいと仮定すると配列を意味するので、スライスを使用します。それはレコードである場合、コンポーネントにアクセスする出力低減する

(gdb) p x(1..3) 
$2 = ((first => 0, second => 0), (first => 0, second => 0), (first => 0, second => 0)) 
(gdb) p x(1..5) 
$3 = ((first => 0, second => 0), (first => 0, second => 0), (first => 0, second => 0), (first => 0, second => 0), (first => 0, second => 0)) 
(gdb) 

:コマンドライン・シェル上で実行する場合、そうでなければ、GDBを

(gdb) p y.x 
$2 = (a => 0 '["00"]', b => 0 '["00"]', c => 0 '["00"]', d => 0 '["00"]') 
(gdb) p y.x.a 
$3 = 0 '["00"]' 
(gdb) 

をすることができるパイプUNIX(1)それ以上は、 EmacsからGDBがテキストを出力する限り、あらゆる種類の出力処理が可能になります。

+0

変数は構造体なので、非配列をスライスすることはできません。/ – YisasL

+0

"structure"?あれは何でしょう?ブーリアンの配列?レコード? ...? –

+0

レコードです。 本当は、要素ごとではなく、Linuxで "head"コマンドのように印刷したいと思います。 – YisasL

関連する問題