LinuxのC++プログラムから、gdbで実行されるのと同様の形式でバックトレースをダンプしたいと思います。この目的のために、backtrace()関数とbacktrace_symbols()関数を使用しようとしました。これらは関数名とオフセットを返しました。__cxa_demangle()関数を使用して、読み取り可能な関数名を取得できます。
gdbによって行われるように、ファイル/行の位置も取得する方法はありますか?
プログラムからgdbを呼び出してスタックトレースを出力する方が良いですか? `
方法 #4 は、ファイル名と行を取得する方法を示しています。しかし、externプログラムを使用しています..