呼び出し元関数の出力
しばらく書いていなかったけど、まだBoehm対応^^;
正確には動いているんだけど、元のソースのバグが発覚してその対応。ただ、まだよくわかっていない--;
そのバグは排他制御の2重解放を行っていてAssertが発生するというもの。解放処理を呼んでいるところが多々ありすぎて、どこの排他が抜けているのかわからん・・・(ちなみに、ソースは人の流用ソース。)
とりあえず、排他制御と解放の処理が対応づいているか調べるために、排他取得と解放処理を呼び出している関数を知りたいのだが、
int unlock() { /* ここに処理をいれたい */ }
できれば、呼び出し先ではなく、呼び出された関数内で、どうにか呼び出し関数を出力したいのだが、その方法がよくわからない。まぁ、__FUNC__などのようにプリプロセスで処理できるものでもなく、mapファイルやらstackの表示やらしないといけないので、もしかしたら無理なのかもしれないけど、ありそうだといえば、ありそうなんだけどなぁ。
Javascriptでいえば、callerに相当するものはC様にはないのかなぁ。まぁ、javascriptでも将来的には廃止かもっていうのもあるので、ない可能性も高いけど。