ポインターがアドレス指定するデータの表示

ポインターが指す対象を表示したい場合には、:c または :x の 接尾部を指定した EVAL コマンドを使用することができます。 例えば、 ポインター・フィールド PTR1 が 10 バイトの文字データを指す場合には、 以下を指定することにより、この 10 バイトの内容が表示されます。
EVAL PTR1:c 10
この 10 バイトの内容が表示されます。
また、次を使用すると 16 進で内容を表示することもできます。
EVAL PTR1:x 10

ポインターがアドレス指定するデータが、パック・データや 2 進データなどの 印刷可能形式で保管されていない場合には、これは特に便利です。

自身がポインター PTR2 に基づいている基底付きポインター PTR1 に基づく変数 FLD1 を持っている場合、 デバッガーで単純な EVAL コマンドを使用して FLD1 を評価することはできません。

その代わりに、デバッガーに基底付きポインターのチェーンを明示的に提供する必要があります。
===> EVAL PTR2->PTR1->FLD1
例えば、次のような定義がある場合、
D pPointers       S               *                      
D pointers        DS                  based(pPointers)   
D  p1                             *                      
D  p2                             *                      
D data1           S             10A   based(p1)          
D data2           S             10A   based(p2)          
これらのコマンドをデバッガーで使用して、 DATA1 および DATA2 の値を次のように表示または変更することができます。
===> eval pPointers->p1->data1
===> eval pPointers->p2->data2 = 'new value'
デバッガーで指定する式を決定するには、 評価したい値を持つ式の終わりから開始します。
	data1
次に左に移動して、 data1 を定義するために、BASED キーワードに表示される名前 (p1) を追加します。
	p1->data1
次に再び左に移動して、 p1 を定義するために、BASED キーワードに表示される名前 (pPointers) を追加します。
	pPointers->p1->data1
指定したポインターが BASED キーワードで定義されていない場合、 式は完了します。 この場合、pPointers は基底として定義されないため、デバッグ式が 完了します。
===> eval pPointers->p1->data1