本文に進む 日本−日本語
日本HPホーム 製品とサービス お客様サポート/ ダウンロード ソリューション ご購入の方法
≫ お問い合わせ
詳細検索オプション
日本HPホーム
HP-UX リファレンス: セクション 3 : ライブラリ (N~Z) > u

_UNW_getGR(3X)

Itanium(R) ベース システム専用
HP-UX 11i Version 2: September 2004
≫ 

テクニカル ドキュメント

PDF版
フィードバック
ここから本文が始まります

 ≫ 目次

 ≫ 索引

名称

_UNW_getGR(), _UNW_getGR_NaT(), _UNW_getFR(), _UNW_getBR(), _UNW_getAR(), _UNW_getPR(), _UNW_getPreds(), _UNW_getIP(), _UNW_getCFM(), _UNW_getAlertCode(), _UNW_clearAlertCode(), _UNW_getKernelSavedContext() ― アンワインドライブラリのデータ構造内の値の取り出し

構文

#include <unwind.h>

uint64_t _UNW_getGR(_Unwind_Context* p, uint32_t num);

_UNW_GR_Value _UNW_getGR_NaT(_Unwind_Context* p, uint32_t num);

_UNW_FR_Value _UNW_getFR(_Unwind_Context* p, uint32_t num);

uint64_t _UNW_getBR(_Unwind_Context* p, uint32_t num);

_UNW_getAR(_Unwind_Context* p, _UNW_AppReg num);

_UNW_Boolean _UNW_getPR(_Unwind_Context* p, uint32_t num);

uint64_t _UNW_getPreds(_Unwind_Context* p);

uint64_t _UNW_getIP(_Unwind_Context* p);

uint64_t _UNW_getCFM(_Unwind_Context* p);

_UNW_ReturnCode _UNW_getAlertCode(const _Unwind_Context *p);

void _UNW_clearAlertCode(_Unwind_Context *p);

説明

_UNW_getGR() は、パラメータ p が指す _Unwind_Context オブジェクト内の番号 num の汎用レジスタの値を返します。

_UNW_getGR_NaT() は、パラメータ p が指す _Unwind_Context オブジェクト内の番号 num の汎用レジスタの値と NaT ビットの値を返します。 値は _UNW_GR_Value 型の構造体により返されます。 構造体の value フィールドにはレジスタの値が格納され、構造体の NaT フィールドにはレジスタの NaT ビットの値が格納されます。

_UNW_getFR() は、パラメータ p が指す _Unwind_Context オブジェクト内の番号 num の浮動小数点レジスタの値を返します。 値は _UNW_GR_Value 型の構造体により返されます。 構造体の first_container フィールドと second_container フィールドに、浮動小数点レジスタの、スピル/フィル メモリー形式の連続するダブルワードが格納されます。 『『Intel IA-64 アーキテクチャ・ソフトウェア・デベロッパーズ・マニュアル』, 『第 1 巻: IA-64 アプリケーション・アーキテクチャ』』の 『第 5.3 項「浮動小数点命令」』 を参照してください。

_UNW_getBR() は、パラメータ p が指す _Unwind_Context オブジェクト内の番号 num の分岐レジスタの値を返します。

_UNW_getAR() は、パラメータ p が指す _Unwind_Context オブジェクト内の、列挙型項目 num で示されるアプリケーションレジスタの値を返します。 アプリケーションレジスタにアクセスするために、列挙型 _UNW_AppReg を使用します。

_UNW_getPR() は、パラメータ p が指す _Unwind_Context オブジェクト内の番号 num のプレディケートレジスタの値を返します。

_UNW_getPreds() は、パラメータ p が指す _Unwind_Context オブジェクト内のすべてのプレディケートレジスタの値を返します。 返される値にはプレディケートレジスタの番号に対応するビット位置に各プレディケートレジスタの値が保持されています。 たとえば、ビット 63 にはプレディケートレジスタ 63 用の値が入っています。

getIP() は、パラメータ p が指す _Unwind_Context オブジェクト内の命令ポインターの内容を返します。

getCFM() は、パラメータ p が指す _Unwind_Context オブジェクト内のカレントフレームマーカーの内容を返します。

_UNW_getAlertCode() は、最新の「クライアントが知っておくべき」リターンコードを返します。 「クライアントが知っておくべき」状況がない場合、 _UNW_getAlertCode()_UNW_OK を返します。 「クライアントが知っておくべき」リターンコードとは、列挙型 _UNW_ReturnCode の項目のうち _UNW_OK を除くすべてです。

_UNW_clearAlertCode() は、パラメータ p が指す _Unwind_Context オブジェクト内の「クライアントが知っておくべき」リターンコードをすべてクリアします。

_UNW_getKernelSavedContext() は、ツール (たとえばカーネルデバッガ) が、カーネル割り込みに関して必要とする情報を得る手段を提供します。 値は _UNW_KernelSavedContext 型の構造体により返されます。 クライアントは、この構造体の P10 アンワインド記述子形式の 2 つのフィールド p10_abi_valuep10_context_value から情報を得ることができます。 詳細は unwind(5) と 『『Itanium Processor Family Software Conventions and Runtime Architecture』』 を参照してください。

戻り値

_UNW_getAlertCode を除き、レジスタ値問い合わせ関数 (_UNW_get... で始まる関数) は、正常終了時には要求された値を返し、そうでない場合は値 0 を返します。

_UNW_getAlertCode は、列挙型 _UNW_ReturnCode の項目の中から値を返します。 unwind(5) の 『「エラー状態と復旧」』 を参照してください。

_UNW_clear は、正常終了時には _UNW_OK を返します。 そうでない場合は、 _Unwind_Context の状態が、 InitUser_Interrupted_FrameUser_Sendsig_FrameKernel_Bottom_FrameFrame のいずれでもないときは _UNW_CLEAR_NOT_ALLOWED_IN_STATE を返します。

このプロシージャフレームのコンテキストで汎用レジスタ 5 の値を取得し、範囲エラー、問い合せエラー、などをチェックします。 最後にアラートコードをクリアします。

#include <unwind.h> 
_Unwind_Context *uc; 
_UNW_ReturnCode retcode; 
_UNW_GR_Value result; 
uc = _UNW_createContextForSelf(); 
if (_UNW_OK != _UNW_currentContext(uc)) { 
    /* Notify client: Initialization problem  */ 
} 
else { 
    result=_UNW_getGR_NaT(uc,5); 
    switch (_UNW_getAlertCode(uc)) { 
           case  _UNW_OK: 
                  break; 
           case  _UNW_QUERY_RANGE_ERROR: 
                  /* Notify user of range error */ 
                  break; 
           default: 
                  /* Notify user of other error */ 
                  break; 
     } 
} 
 _UNW_clearAlertCode(uc); 

警告

unwind(5) の 『「クライアント/ライブラリ相互参照」』 の項の下の 『「照会」』 の項の表を参照してください。 ここには、問い合せ関数から返された値が、いつの時点で、該当プロシージャのプロセッサ状態の実際のレジスタの値を反映していることが保証されるかが記載されています。 たとえば、スクラッチレジスタの値は、割り込みに関連したスタックフレームを経由した後でのみ有効です。 『『Itanium Processor Family Software Conventions and Runtime Architecture』』の 『Chapter 5: Register Usage』 を参照してください。

著者

_UNW_getGR()_UNW_getGR_NaT()_UNW_getFR()_UNW_getBR()_UNW_getAR()_UNW_getPR()_UNW_getPreds()_UNW_getIP()_UNW_getCFM()_UNW_getAlertCode()_UNW_clearAlertCode()_UNW_getKernelSavedContext は HP で開発されました。

印刷用画面へ
プライバシー 本サイト利用時の合意事項
© 1983-2004 Hewlett-Packard Development Company, L.P.