리디렉터의 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)(예:) 또는 이와 유사한 것을 사용하여 프로그램을 실행하십시오.