Xcode を ベースに表題について語ります。
- memory系のcrashは原因がよくわからないことがよくある
- guard malloc = on にすることで、どの番地で問題が起きたのかトラップできるようにする
- MallocStackLogging = on にすると、 memory allocationのhisotryをlogするようになる
- それができたら、addressと process 番号を引数に malloc_history を叩く
- その番地のhistoryがでるので、気になる履歴を探る
以上を行うために
- xcode edit scheme.. -> diagnostics -> Guard Malloc, Malloc Stack に check
- 開発物をdebug 起動 -> crash を起こす
- debug window から 問題があるaddressと process number を得る
- Terminal を開く
- $malloc_history process address
以上