1

可能であれば、エラー出力に最後の数行のコードを含めるにはどうすればよいですか? __LINE__GNU g++ のandのサポートについては知っています__FUNC__が、それらは行番号を int として、関数名を文字列としてのみ提供します-失敗した関数のコードまたは少なくともプログラムによって実行された最後のいくつかのコマンドをダンプしたいと思います。

コードベースを解析し、それらが配置されている関数の文字列構造を挿入するm4スクリプトを作成する可能性があると考えていました(もちろん、それ自体を除く)。

他の/より良いアイデアはありますか?

4

1 に答える 1

1

コードをまったく変更しないでください。エラー出力を使用__LINE____FUNC__て後処理します。つまり、コード ベースにアクセスして必要なテキストを生成できるmy-prog > $(tty) 2>&1 | post-process場所としてプログラムを実行します。post-process後処理で関数名と行番号を見つけやすくするために、タグを追加してコードを少し変更することをお勧めします。

于 2013-05-17T12:10:43.057 に答える