IDIXDLOC – システム・バッファリングを使用したダンプ・ストレージの検索
フォーマット
#include "idixufmh.h"
int IDIXDLOC(int addr, int len);
概要
IDIXDLOC() 関数は、仮想アドレスと長さによって、分析されたアドレス・スペース内のストレージにアクセスする場合に使用します。
注: 大容量の仮想ストレージにアクセスする際にストレージ不足状態を防ぐには、代わりに IDIXXLOC 関数を使用します。詳しくは、IDIXXLOC – 独自のバッファリングを使用したダンプ・ストレージの検索を参照してください。
リアルタイム処理の場合、アクセスされるストレージは一般的に、分析中の実際のアドレス・スペースのストレージです。再分析の場合、ストレージはミニダンプから取得されます。
リアルタイム・モードか再分析モードかにかかわらず、保護例外が発生するおそれがあるため、IDIXDLOC() 関数の呼び出しによって取得されていないストレージ域を間接参照しないでください。
IDIXDLOC() は、Fault Analyzer REXX コマンド「Evaluate」と機能的に同等です。
戻り値
要求された長さでストレージが使用可能な場合、IDIXDLOC() はストレージ域のアドレスを返します。
IDIXDLOC() は、要求されたアドレスが使用可能でも、長さが要求された長さよりも短い場合は負の値を返します。使用可能な長さは、戻り値を 0 から減算することで判別できます。部分的なストレージ域のアドレスを取得するには、削減した長さを使用して再度 IDIXDLOC() を呼び出します。
長さにかかわらず、要求されたアドレスが使用できない場合は、値 0 が返されます。
例
#include "idixufmh.h"
int maddr, cvt;
maddr = IDIXDLOC(16,4); /* Get address of CVT pointer /
if (maddr > 0)
cvt = (int )maddr; /* Get CVT pointer */