私はbacktraceとbacktrace_symbolsを利用して、ロギング/診断の目的でプログラムによるスタックトレースを生成してきました。大まかに機能しているように見えますが、少し混乱していて、各関数の呼び出しに関連付けられたファイル/行番号はありません(gdb bt呼び出しなどで予想されるように)。次に例を示します。
1レオナルド0x00006989 _ZN9ExceptionC2E13ExceptionType + 111
2レオナルド0x00006a20 _ZN9ExceptionC1E13ExceptionType + 24
3レオナルド0x0000ab64 _ZN5Rules11ApplyActionER16ApplicableActionR9GameState + 1060年
4レオナルド0x0000ed15 _ZN9Simulator8SimulateEv + 2179
年5レオナルド0x0000eec9 _ZN9Simulator8SimulateEi + 37
6レオナルド0x00009729 45 +メイン
7レオナルド0x000025c6スタート+ 54
私が何かを見逃している、何か愚かなことをしている、またはこれがOS / Xのバックトレースから期待できるすべてですか?
他のいくつかのヒント:
rdynamic
使用しているg++バージョン(4.0.1)のリンクオプションが表示されません。-g/-g3
違いはありません。
abi::__cxa__demangle
何もしていないようです