1.2.7 メモリ管理(ee_mem_〜)(C言語)
- 〈この項の構成〉
(1) ee_mem_userdump
- 名称
-
メモリ領域のダンプ出力
- 形式
-
ANSI C,C++の形式
#include <eemem.h> int ee_mem_userdump(void *addr_pt, EEULONG64 size, EELONG kind, EELONG flags);
- 機能
-
指定されたユーザメモリ領域をファイルに出力する設定を行います。
指定されたユーザメモリ領域は,ユーザメモリダンプファイルに即時出力,またはスレッドダウン時にメモリDUMPファイルに出力します。
UAPで値を設定する引数
- addr_pt
-
出力するメモリアドレスを設定します。
次の領域の範囲にあるアドレスを指定してください。領域の先頭アドレスである必要はありません。
-
ユーザSAT領域
-
ユーザIFA領域
-
ee_mem_getwkseg()で確保したワークセグメント領域
kindにEEMEM_DUMPKIND_CLEARを指定した場合は,指定不要です。
-
- size
-
出力するメモリ領域サイズを1バイト単位で指定します。1から17,179,869,184までの範囲で指定してください。
出力する領域がaddr_ptで指定した領域の末尾領域を超えないように指定してください。
kindにEEMEM_DUMPKIND_CLEARを指定した場合は,指定不要です。
- kind
-
次の値を指定します。
-
EEMEM_DUMPKIND_IMMEDIATE:即時ファイル出力
指定されたメモリ領域をユーザメモリダンプファイルに出力します。
-
EEMEM_DUMPKIND_MEMDUMP:メモリDUMP出力対象領域の設定
スレッドダウン時,メモリDUMPファイルに出力する領域を設定します。
1スレッドにつき30か所まで設定できます。
-
EEMEM_DUMPKIND_CLEAR:メモリDUMP出力対象領域のクリア
EEMEM_DUMPKIND_MEMDUMPで設定した出力領域をすべてクリアします。
-
- flags
-
EENOFLAGSを設定します。
- リターン値
-
リターン値
意味
EE_OK
正常に終了しました。
EECOMER_ENVIRON
TP1/EEの環境下にありません。
EECOMER_CNDUOC
UOCから発行しているため,本機能は使用できません。
EEMEMER_ARGUMENT
引数に設定した値が間違っています。
EEMEMER_CONDITION
発行条件が不正です。
TP1/FSPの環境下にありません。
EEMEMER_INVALID
無効なメモリ領域を設定しています。
EEMEMER_FILEOUT
ファイル出力に失敗しました。
EEMEMER_NUM_OVER
メモリ領域の設定可能最大数を超過しました。
- 注意事項
-
-
出力時に指定されたメモリ領域が使用可能な領域であるかどうかのチェックは行いません。ファイル出力時に指定されたメモリ領域が返却済みのワークセグメントであっても,指定されたメモリ領域をファイルに出力します。
-
設定したメモリDUMP出力対象領域の設定は,システム再開始後引き継がれません。
-
kindにEEMEM_DUMPKIND_IMMEDIATEを指定した場合は,環境変数にEEUSERDUMPDIRを指定してください。当該環境変数を指定しない場合,本APIは即時出力処理を行わないでEE_OKでリターンします。
-
オフラインバッチプロセスでは,kindにEEMEM_DUMPKIND_IMMEDIATEを指定してください。それ以外の値をkindに指定した場合,メモリDUMP出力対象領域の設定/クリア処理は行われますが,オフラインバッチプロセスはスレッドダウンしないため出力の契機はありません。
-