[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

6.23 開発補助API

Gauche には開発者がプログラムを解析するための基本的な組込みAPIがあります。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

6.23.1 デバッグ補助

Macro: debug-print expr

このマクロはexprをそのフォームのまま印字してから、その式を評価し、 評価の結果を印字し、その値を返します。

特殊リーダー構文 #?=expr(debug-print expr) に展開されます。 詳細については デバッグ を参照してください。

Parameter: debug-print-width

このパラメータはdebug-printが印字する情報の最大幅を指定するもの です。このパラメータが保持する値よりも大きいカラム数の情報は丸められま す。

すべての情報を表示したければ、このパラメータに#fを設定してくだ さい。

Function: debug-source-info obj

objに付加されているソースコード情報を検索します。ソースコード情 報とはソースコードファイル名と行番号のリストです。objにソースコー ド情報が付加されていなければ、#fが返されます。

Function: disasm closure

コンパイル済のclosureの本体部分をディスアセンブルして印字します。 これはコンパイラのバグをなんとかしようという場合か、限界まで チューンしようとしないかぎりは役には立たないでしょう。

このディスアセンブラの出力結果を読む場合には、コンパイルされたコードに はデッドコードが含まれている可能性があることを心してください。デッドコー ドはジャンプ最適化によって生成されるのですが、コンパイラはこれをわざわ ざ除去することはしていません。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]         [Top] [Contents] [Index] [ ? ]

6.23.2 プロファイラAPI

ここに挙げている関数は、Gauche の組込みプロファイラを制御するためのも のです。プロファイラの説明については プロファイラを使う を参照してく ださい。

注意:現時点ではプロファイラはマルチスレッドプログラムでは正しく動作し ません。

Function: profiler-start

標本化プロファイラを始動します。プロファイラが既に始動しいる場合 には何もしません。

Function: profiler-stop

標本化プロファイラを停止し、標本データを内部データ構 造に保存します。既に標本データが保存されていた場合には、新 しく収集された標本データがその後に追加されます。もしプロファイラが動いてい なかった場合には何もしません。

Function: profiler-reset

もしプロファイラが動いていればそれを停止し、保存されていた標本データ を破棄します。

Function: profiler-show &keyword sort-by max-rows

格納されている標本データを表示します。

キーワード引数 sort-by は指定する場合は、timecount または time-per-call のどれかひとつです。 これで結果の整列順を指定します。デフォルトでは timeです。

キーワード引数 max-rows では結果を表示する最大行数を指定します。 この値が #f であればすべてのデータが表示されます。


[ < ] [ > ]   [ << ] [ Up ] [ >> ]

This document was generated by Shiro Kawai on November, 22 2009 using texi2html 1.78.