少し雑だが,std::set_terminate()
や signal()
の SIGSEGV でバックトレースを出力するようにした。これで,セグメンテーション違反や例外での異常終了時の状況を容易に把握出来るようになった。出力録保存機能との相性も抜群だろう。
早く出与えを得たいので出振るいしておいた。pkill -11
でしっかり記録出来ていることも確認した。
backtrace()
は C ライブラリなのでマングリングされたシンボルが出力されるが,デマングリングが少し面倒臭いので一応そのままにしておいた。大体の意味は分かるし,c++filt
を通せば翻訳出来る。