呼び出し元関数の出力

しばらく書いていなかったけど、まだBoehm対応^^;
正確には動いているんだけど、元のソースのバグが発覚してその対応。ただ、まだよくわかっていない--;

そのバグは排他制御の2重解放を行っていてAssertが発生するというもの。解放処理を呼んでいるところが多々ありすぎて、どこの排他が抜けているのかわからん・・・(ちなみに、ソースは人の流用ソース。)

とりあえず、排他制御と解放の処理が対応づいているか調べるために、排他取得と解放処理を呼び出している関数を知りたいのだが、

int unlock()
{
    /* ここに処理をいれたい */
}

できれば、呼び出し先ではなく、呼び出された関数内で、どうにか呼び出し関数を出力したいのだが、その方法がよくわからない。まぁ、__FUNC__などのようにプリプロセスで処理できるものでもなく、mapファイルやらstackの表示やらしないといけないので、もしかしたら無理なのかもしれないけど、ありそうだといえば、ありそうなんだけどなぁ。

Javascriptでいえば、callerに相当するものはC様にはないのかなぁ。まぁ、javascriptでも将来的には廃止かもっていうのもあるので、ない可能性も高いけど。