golangで実行時に関数の引数の名前を取得する方法 を見て、 Go には debug ってパッケージも合ったなーとおもって試してみました。
当初、同じパッケージ内にダミーの関数を用意してやろうと思ったのですが、リンク時に strip されるらしく、
さらに呼び出ししてもインライン展開されるらしく、シンボルテーブルに載せるのが面倒で、結局 os.Open
なら成功しました。
debug/gosym
は Go 独自の詳細なシンボルテーブルを参照するのですが、 elf, PE などそれぞれ用に
コード書かないといけないし、リンク時にシンボルが消えてる可能性があるので、挑戦するなら debug/dwarf
の方が
良かったかもしれません。