record (idb モードのみ)

デバッガーの動作をファイルに記録します。

構文

record { input | output | io } [file]

パラメーター

file

動作を記録するファイル。

input

入力のみを記録。

output

出力のみを記録。

io

入力と出力を記録。

説明

このコマンドは、デバッガーの入力、出力、またはその両方を記録します。

コマンドファイルを作成したり、前に起こったことを参照できるように、入力と出力の両方がファイルに書き込まれます。

record input コマンドは、デバッガーコマンドをファイルに保存します。source コマンドまたは playback input コマンドを使用して、ファイル中のコマンドを実行することができます。

ファイル名が指定されていない場合、デバッガーは記録ファイルをランダムな名前で /tmp に作成します。デバッガーは、そのファイル名を通知するメッセージを発行します。

record output コマンドは、デバッガー出力をファイルに保存します。出力は同時に stdout (標準出力) または stderr (エラーメッセージ) にも書き込まれます。

デバッガーの入力または出力の記録を停止するには、適切なバージョンの unrecord コマンドを使用してデバッガーを終了するか、次のようにコマンドを /dev/null にリダリレクトします。

(idb) 
					 record input /dev/null
(idb) 
					 record output /dev/null
(idb) 
					 record io /dev/null

record io コマンドは、デバッガーへの入力とデバッガーからの出力の両方を保存します。このコマンドの起動時にデバッガーがすでに入力または出力を記録中である場合、デバッガーは古いファイルを閉じて、新しいファイルに記録します。同時に 2 つのファイルには記録しません。

record iorecord input record output の組み合わせに相当し、開かれている記録ファイルは閉じられます。

record io コマンドのみがプロンプト自体を記録します。

次の例は、record input コマンドを使用して、一連のデバッガーコマンドを myscript という名前のファイルに記録する方法を示しています。

(idb) 
					 record input myscript
(idb) 
					 stop in main
[#1: stop in int main(void)] 
(idb) 
					 run
[1] stopped at [int main(void):182 0x08051603] 
182 List<Node> nodeList; 
(idb) 
					 unrecord input
myscript に入力が記録されます。
(idb) 
					 sh cat myscript
stop in main 
run 
unrecord input 

次の例は、record output コマンドを使用して、一連のデバッガーコマンドを myscript という名前のファイルに記録する方法を示しています。

(idb) 
					 record output myscript
(idb) 
					 stop in List<Node>::append
[#2: stop in void List<Node>::append(class Node* const)] 
(idb) 
					 cont
[2] stopped at [void List<Node>::append(class Node* const):148 0x0804ae5a] 
148 if (!_firstNode) 
(idb) 
					 cont to 156
stopped at [void List<Node>::append(class Node* const):156 0x0804aed7] 
156 } 
(idb) 
					 unrecord output

上記のコマンドで記録された myscript の内容は次のとおりです。

(idb) 
					 sh cat myscript
[#2: stop in void List<Node>::append(class Node* const)] 
[2] stopped at [void List<Node>::append(class Node* const):148 0x0804ae5a] 
148 if (!_firstNode) 
stopped at [void List<Node>::append(class Node* const):156 0x0804aed7] 
156 } 

次の例は、record io により入力と出力が記録される方法を示しています。

(idb) 
					 record io myscript
(idb) 
					 stop in main 
[#1: stop in int main(void) ] 
(idb) 
					 run
[1] stopped at [int main(void):12 0x120001130] 
12 int i; 
(idb) 
					 quit  
% cat myscript 
(idb) 
					 stop in main
[#1: stop in int main(void) ] 
(idb) 
					 run
[1] stopped at [int main(void):12 0x120001130] 
12 int i; 
(idb) 
					 quit

関連情報


このヘルプトピックについてのフィードバックを送信