コアダンプとスタックスマッシュメッセージをリダイレクトする方法

コアダンプとスタックスマッシュメッセージをリダイレクトする方法

リダイレクタの stdout と stderr を使用できます。./a.out > output.txt 2> error.txt

しかし、これらはsegmentation faults

{ ./a.out < $TEST_DIR'test'$i'.in' > $OUTPUT_DIR/output$i.txt ; } 2> $OUTPUT_DIR/error$i.txt

ただし、コアダンプとスタックスマッシュメッセージはリダイレクトされません。
リダイレクトする方法は?

ベストアンサー1

「セグメントエラー」メッセージは、問題のあるプログラムではなく、シェルによって印刷されます。

&backtrace + memmapメッセージ*** stack smashing detected ***(少なくとも私のシステムでは)は、スタックガードハンドラによって制御端末に直接印刷されます(_PATH_TTY/dev/ttyはstdoutまたはstderrに関係なく直接開き、メッセージがそこに書き込まれます)。fortify_fail.cそしてlibc_fatal.cglibcから)。

内容全体をキャプチャするには、script -c './rpneval ...'script(1) (例:) などを使用してプログラムを実行します。

おすすめ記事