curs_trace(3x) curs_trace(3x)
_tracef, _tracedump, _traceattr, _traceattr2,
_nc_tracebits, _tracecchar_t, _tracecchar_t2, _tracechar,
_tracechtype, _tracechtype2, _tracemouse, trace - curses
debugging routines
- curses デバッグ用ルーチン
#include <curses.h>
void _tracef(const char *format, ...);
void _tracedump(const char *label, WINDOW *win);
char *_traceattr(attr_t attr);
char *_traceattr2(int buffer, chtype ch);
char *_nc_tracebits(void);
char * _tracecchar_t(const cchar_t *string);
char * _tracecchar_t2(int buffer, const cchar_t *string);
char *_tracechar(int ch);
char *_tracechtype(chtype ch);
char *_tracechtype2(int buffer, chtype ch);
char *_tracemouse(const MEVENT *event);
void trace(const unsigned int param);
trace ルーチン群は ncurses ライブラリを使うアプリケーションと
同様に、ncurses ライブラリ (自体) のデバッグにも使われます。
通常これらの機能は、デバッグ用ライブラリ、
例えば libncurses_g.a が伴うときのみ有効ですが、
識別子 TRACE を定義することにより、これらをどのモデル (共有、
静的、プロファイル) にもコンパイルすることができます。
加えて、ライブラリがワイド文字用に構成されているときのみ
有効な機能がいくつかあります。
以下がこのインターフェイスの主な部分です。
o trace。種々のトレース (実行経過の追跡) 機能を選択的に
有効化します
o _tracef。trace ファイルに整形したデータを書き込みます
trace をゼロでない引数とともに呼び出すと、出力用として
カレントディレクトリにファイル trace をオープンします。
引数は <curses.h> に定義されている TRACE_xxx のリストから
値を論理和して作成します。
これには以下の値が含まれます。
TRACE_DISABLE
トレースを止めます。
TRACE_TIMES
ユーザとシステムの更新時間をトレースします。
TRACE_TPUTS
tputs 呼び出しをトレースします。
TRACE_UPDATE
新旧画面の更新動作をトレースします。
TRACE_MOVE
カーソル移動とスクロールをトレースします。
TRACE_CHARPUT
文字の出力すべてをトレースします。
TRACE_ORDINARY
すべての更新動作 (update) をトレースします。
更新 (refresh) するごとに新旧の画面内容を
trace ファイルへ書き出します。
TRACE_CALLS
すべての curses 呼び出しをトレースします。
各呼び出しの引数が、戻り値と同じようにトレースされます。
TRACE_VIRTPUT
仮想的な文字出力、つまり addch 呼び出しをトレースします。
TRACE_IEVENT
低レベルの入力処理をトレースします。
タイムアウトを含みます。
TRACE_BITS
TTY 制御ビットの状態をトレースします。
TRACE_ICALLS
内部/入れ子(ネスト) の呼び出しをトレースします。
TRACE_CCALLS
文字ごとの呼び出しをトレースします。
TRACE_DATABASE
terminfo/termcap データの読み書きをトレースします。
TRACE_ATTRS
表示属性と色の変更をトレースします。
TRACE_MAXIMUM
最大のトレースレベル。個別のトレース機能をすべて
有効にします。
いくつかのトレース機能は trace の引数がゼロでなければ
つねに有効です。
いくつかの機能は重複しています。
ガイドラインとして特定の名前が使われています。
その他の関数は (該当する関数が確保した) 文字列領域への
ポインタを返すか、(TRACE_UPDATE 用の画面ダンプを実装している
_tracedump のように) 値を返さないかのどちらかです。
確保された文字列領域は後続の呼び出しによって再使用されるので、
呼び出し側で開放してはいけません。
関数には 1 つの文字列領域しかないという問題を回避するため、
いくつかの関数は、ライブラリに追加の文字列領域を確保するように
指示するバッファ数引数を使います。
次の関数は環境変数 NCURSES_TRACE を調べ、trace が
呼び出されたかのようにトレース機能を設定します。
filter, initscr, new_prescr, newterm, nofilter,
restartterm, ripoffline, setupterm, slk_init,
tgetent, use_env, use_extended_names, use_tioctl
値を返すルーチンは、_tracef ルーチンの引数として
使われるように設計されています。
これらの関数は XSI インターフェイスの一部ではありません。
curses の他のいくつかの実装は、明文化されていない同様な
機能を持つことが知られていますが、ncurses と互換性は
ありません。
curses(3x).
curs_trace(3x)