__builtin_return_address関数の紹介。簡単にいうとある関数が どこから呼び出されたか知ることができる関数です。厳密には 該当の関数を終えたときにどの番地に戻るかということなの ですが、たいてい call命令などの次の命令を示すので、呼び出した 場所の特定も容易にできてしまいます。 私はカーネルデバッグ時に多用します。 ユーザランドであればデバッガを使うことが容易ですが、 カーネルだと若干面倒です。カーネルでもメジャーなアーキテクチャ カーネルデバッガが安心して使えるんですが、マイナーなアーキテクチャだと カーネルデバッガ用のコードが誤っている(経験あり)ということがあるので、 どうしてもprintデバッグに頼ってしまいます。 __builtin_return_addressではアドレスしか知ることができないので, objdumpや nmの併用が基本となります。 変数の