FIELD NOTES: 書を持って街へ出よう

合同会社フィールドワークス プログラマ兼代表のブログ

OCamlでスタックトレースを出力する方法

OCamlで記述したプログラム内で例外が発生した場合,非常にあっさりしたメッセージを出力して停止する。OCamlでもJavaLL言語のようにスタックトレースを出力できないものかとしらべてみた。
以下に方法を示す。

  1. `-g'オプションを付けて,バイトコードプログラムをビルドする。
  2. ocamlrunに`-b'オプションを付けてプログラムを起動する。もしくは,環境変数OCAMLRUNPARAMに`b'をセットする。

これで,例外が発生した箇所のソースファイル名と行数,問題の箇所に到るまでのスタックトレースが表示されるようになる。
OCAMLRUNPARAMに`b'をセットしておけば,ネイティブプログラムでもスタックトレースは出力されないが例外発生箇所の場所だけは表示してくれるようだ。