CBL_CTF_TRACE

1 つ以上の出力先にイベントを出力します。

構文:

call "CBL_CTF_TRACE" using by value     flags
                           by reference component-id
                           by reference trace-event
                              returning status-code

パラメーター

flags
呼び出しプロトタイプ:cblt-x4-comp5
PIC:pic x(4) comp-5
component-id
呼び出しプロトタイプ:pic x(n)
PIC:pic x(n)
trace-event
cblt-trc-event として定義されている集団 (以下を含む)
01 cblt-trc-event              typedef.
  03 cblte-trcevt-version      cblt-x4-comp5. *> pic x(4) comp-5.
  03 cblte-trcevt-flags        cblt-x4-comp5. *> pic x(4) comp-5.
  03 cblte-trcevt-event-id     cblt-x4-comp5. *> pic x(4) comp-5.
  03 cblte-trcevt-level        cblt-x4-comp5. *> pic x(4) comp-5.
  03 cblte-trcevt-data-count   cblt-x4-comp5. *> pic x(4) comp-5.
  03 cblte-trcevt-event-len    cblt-pointer.	 *> pointer
  03 cblte-trcevt-event-type   cblt-pointer.  *> pointer
  03 cblte-trcevt-event-data   cblt-pointer.  *> pointer
status-code
説明の読み方」を参照。

入力パラメーター:

flags
制御フラグ:
ビット 0 から 11
将来使用するために予約されています。値は常に 0 です。
ビット 12
意味
0 コンポーネントでトレースが有効になっており、cblte-trcevt-level で指定されたイベント レベルがコンポーネントに対して構成されたトレース レベル以上である場合にのみイベント データを出力します。
1 コンポーネントでトレースが有効になっている場合に常にイベントを出力します。cblte-trcevt-level およびコンポーネントに対して構成されたトレース レベルは無視されます。
ビット 13
意味
0 cblte-trcevt-event-data は、さまざまなサイズおよびタイプのデータをトレースするためのポインターの配列です。cblte-trcevt-event-len 配列および cblte-trcevt-event-type 配列の対応する要素を定義する必要があります。
1 cblte-trcevt-event-data は、同じサイズおよびタイプのデータをトレースするためのポインターの配列です。cblte-trcevt-event-len および cblte-trcevt-event-type の最初の要素のみを定義する必要があります。
ビット 14 から 29
将来使用するために予約されています。値は常に 0 です。
ビット 30
意味
0 component-id は空白文字で終了します。
1 component-id は null で終了します。ビット 31 を設定していない場合は無視されます。
ビット 31
意味
0 component-id は、CBL_CTF_TRACER_GET の呼び出しから返される pic x(4) comp-5 トレーサー ハンドルです。
1 component-id は、pic x(n) テキスト文字列です。文字列の終了文字はビット 30 で定義されます。
component-id
コンポーネント識別子。flags のビット 31 が設定されていない場合は pic x(4) comp-5 トレーサー ハンドル (CBL_CTF_TRACER_GET から取得)、flags のビット 31 が設定されている場合は pic x(n) テキスト識別子になります。
cblte-trcevt-version
構造体のバージョン。値は常に 0 です。
cblte-trcevt-flags
制御フラグ。値は常に 0 です。
cblte-trcevt-event-id
出力されるイベントのタイプを識別するために使用される、コンポーネントに固有のイベント識別子。
cblte-trcevt-event-level
出力されるイベントのトレース レベル。
cblte-trcevt-data-count
トレース データ項目の数。cblte-trcevt-event-len 配列、cblte-trcevt-event-type 配列、および cblte-trcevt-event-data 配列の要素数を示します。0 にすることもできます。
cblte-trcevt-event-len
4 バイトの comp-5 項目の配列へのポインター。配列の各要素は、cblte-trcevt-event-data 配列内の対応するトレース データ項目の長さを示します。cblte-trcevt-data-count が 0 の場合は NULL にできます。
cblte-trcevt-event-type
4 バイトの comp-5 項目の配列へのポインター。配列の各要素は、cblte-trcevt-event-data 配列内の対応するトレース データ項目のタイプを示します。cblte-trcevt-data-count が 0 の場合は NULL にできます。
0 バイナリ
1 テキスト (ローカル エンコーディング)
2 アドレス
3 COMP-5
4 COMP-X
5 UTF8
6 符号付き COMP-5
7 符号付き COMP-X
上記以外の値は、タイプ 0 (バイナリ) として扱われます。
cblte-trcevt-event-data
ポインター項目の配列へのポインター。配列の各要素は、cblte-trcevt-event-type 配列および cblte-trcevt-event-len 配列内の対応する要素によって示されるタイプと長さのトレース データ項目のアドレスを指定します。cblte-trcevt-data-count が 0 の場合は NULL にできます。
アドレス タイプの項目の場合、配列要素は、アドレス値へのポインターではなくアドレス値です。

出力パラメーター:

status-code
次のいずれかになります。
  • 78-CTF-RET-INVALID-COMPONENT-NAME
  • 78-CTF-RET-INVALID-TRACE-HANDLE
  • 78-CTF-RET-INVALID-TRACE-LEVEL
  • 78-CTF-RET-NOT-ENOUGH-MEMORY
  • 78-CTF-RET-NOT-TRACE-ENABLED
  • 78-CTF-RET-NOT-TRACING-LEVEL
  • 78-CTF-RET-OUTPUT-ERROR
  • 78-CTF-RET-SUCCESS

説明:

CBL_CTF_TRACE() は、cblte-trcevt-event-id で識別される指定のイベントを、level で指定されたイベント レベルがコンポーネントに対して構成されたレベル以上である場合に 1 つ以上の出力先に出力します。

例:

copy "cbltypes.cpy".
copy "mfctf.cpy".

78 78-EVENT-TYPE-A      value 1.
78 78-EVENT-TYPE-B      value 2.

01 component-id         pic x(7) value "mycomp ".
01 flags                pic x(4) comp-5.
01 trace-event          cblt-trc-event.
01 trace-event-lengths  pic x(4) comp-5 occurs 1.
01 trace-event-pointers pointer occurs 1.
01 trace-event-types    pic x(4) comp-5 occurs 1.
01 trace-info           pic x(10).
01 tracer-handle        pic x(4) comp-5.

...
move low-values to trace-event

set cblte-trcevt-event-len of trace-event to
    address of trace-event-lengths(1)
set cblte-trcevt-event-type of trace-event to
    address of trace-event-types(1)
set cblte-trcevt-event-data of trace-event
    to address of trace-event-pointers(1)

*> 1) Acquire a tracer handle to trace "mycomp" component events, 
*>    then output two informational events; one with event data, 
*>    one without.

call "CBL_CTF_TRACER_GET" using by value 0
                                by reference component-id
                                by reference tracer-handle
...
move 0 to flags
move 78-CTF-FLAG-LEVEL-INFO to cblte-trcevt-level of trace-event
move 78-EVENT-TYPE-A to cblte-trcevt-event-id of trace-event
move 1 to cblte-trcevt-data-count of trace-event
move length of trace-info to trace-event-lengths(1)
move 78-TRACE-EVENT-TYPE-TEXT to trace-event-types(1)
set trace-event-pointers(1) to address of trace-info

call "CBL_CTF_TRACE" using by value flags 
                           by reference tracer-handle
                           by reference trace-event
... 
move 78-EVENT-TYPE-B to cblte-trcevt-event-id of trace-event
move 0 to cblte-trcevt-data-count of trace-event

call "CBL_CTF_TRACE" using by value flags
                           by reference tracer-handle
                           by reference trace-event
...

*> 2) Output two informational events for the "mycomp" component 
*>    without acquiring a tracer handle

...
move 78-CTF-FLAG-COMPID-STRING to flags
move 78-CTF-FLAG-LEVEL-INFO to cblte-trcevt-level of trace-event
move 78-EVENT-TYPE-A to cblte-trcevt-event-id of trace-event
move 1 to cblte-trcevt-data-count of trace-event
move length of trace-info to trace-event-lengths(1)
move 78-TRACE-EVENT-TYPE-TEXT to trace-event-types(1)
set trace-event-pointers(1) to address of trace-info

call "CBL_CTF_TRACE" using by value flags
                           by reference component-id
                           by reference trace-event
...
move 78-EVENT-TYPE-B to cblte-trcevt-event-id of trace-event
move 0 to cblte-trcevt-data-count of trace-event

call "CBL_CTF_TRACE" using by value flags
                           by reference component-id
                           by reference trace-event
...