タグ

ブックマーク / qiita.com/tatsuya6502 (1)

  • Elixir や Erlang の beam ファイルを逆アセンブル、逆コンパイルする方法 - Qiita

    Elixir プログラムの再帰呼出しが、末尾呼び出し最適化されてるか確認するために、beam ファイルに格納されたマシン語からアセンブリ言語へ逆アセンブルする方法を調べてみた。 おまけとして、beam から Erlang のソースコードへ逆コンパイルする方法も紹介する。 Elixir や Erlang のプログラムをコンパイルすると、モジュールごとに beam ファイルができる。このファイルには、Erlang VM のマシン語に変換されたプログラムや、オプションでデバッグ情報が入っている。 今回調べてわかったのだが、Erlang の標準ライブラリーに用意された関数を使うと、このマシン語を逆アセンブルできる。また、デバッグ情報付きでコンパイルされている場合は、Erlang コードに逆コンパイルすることも可能だ。 末尾呼び出し最適化されているか確認したい Elixir や Erlang では、

    Elixir や Erlang の beam ファイルを逆アセンブル、逆コンパイルする方法 - Qiita
  • 1