いくつか質問があります:
- int backtrace(void **buffer, int size); ここで buffer はポインタの配列です。戻り値の配列要素は、スタックの各フレームへのポイントを返します。では、backtrace() は内部で malloc() をフレーム数の回数だけ呼び出すのでしょうか? これはなぜですか?
- 上記の割り当てられたメモリは backtrace() から freed() されていません。では、このメモリを解放するのは誰でしょうか?
- backtrace() 内から malloc() を回避する方法はありますか?
- backtrace() のソース コードはどこにありますか?
- アセンブリでバックトレースするコードを書くにはどうすればよいですか?