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

U_STACK_TRACE(3X)

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

テクニカル ドキュメント

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

 ≫ 目次

 ≫ 索引

名称

U_STACK_TRACE(), _UNW_STACK_TRACE() ― アンワインドライブラリを使ったプロシージャコールスタックのバックトレース情報の出力

構文

#include <unwind.h>

void U_STACK_TRACE();

_UNW_ReturnCode _UNW_STACK_TRACE(FILE * out_file);

説明

U_STACK_TRACE() は、フォーマットされたスタックトレース情報を標準エラー出力に出力します。 _UNW_STACK_TRACE() は、フォーマットされたスタックトレース情報を、パラメータ out_file で指定された出力ストリームに出力します。 出力を書き出すためには、ストリームは書き出し可能なストリームでなければなりません。

アプリケーション使用法

U_STACK_TRACE()_UNW_STACK_TRACE() は、スレッドセーフです。 これらの関数は、非同期キャンセルセーフでない fprintf() を使用しているので、非同期キャンセルセーフではありません。 スレッドが U_STACK_TRACE() を実行しているときに、キャンセルポイントに達する可能性があります。

戻り値

なし

エラー

U_STACK_TRACE() は、以下の条件ではスタックの完全なバックトレース情報を出力できないことがあります。

  • メモリー不足。 アンワインドライブラリが、スタックのバックトレースまたは、出現した命令ポインターアドレスに対応するシンボルの検索に必要なメモリーを割り当てることができない場合。

  • Itanium ベース システムの Runtime Architecture に準拠していない実行可能ファイルや共有ライブラリがあるとき。 たとえば、無効であったり不完全であるアンワインドテーブルを持っている、あるいはアンワインドテーブルを持っていない場合。 または、無効な、または正しくないアンワインド情報ブロックを持っている場合など。

次のような C プログラムがあったとします。

#include <unwind.h> 
foo() 
{ 
    U_STACK_TRACE(); 
} 
main() 
{ 
    foo(); 
} 

このプログラムをコンパイルして実行すると、次のような出力が得られます。

(0) 0x0000000004000a00  foo + 0x10 [a.out] 
(1) 0x0000000004000a50  main + 0x10 [a.out] 
(2) 0x60000000c0066e20  main_opd_entry + 0x40 [/usr/lib/hpux32/dld.so] 

著者

U_STACK_TRACE() は HP で開発されました。

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