スタックトレースを出力するには?

解決


kai  2006-03-01 18:49:22  No: 60847  IP: [192.*.*.*]

C++でException継承した例外クラスをcatchした際にその例外が発生した箇所(source codeの行数)を出力させたいのですが可能でしょうか?
javaのhrowable.printStackTraceみたいなも関数ってないのでしょうか
ご教示よろしくお願いします。

編集 削除
時間なくてごめn  2006-03-01 20:05:11  No: 60848  IP: [192.*.*.*]

・Windows のデバッガ用の API 等を使えば、できなくはない。
  (UNIX はまた別の手段でできなくはない)
・Java のような簡単な関数はない。

編集 削除
kure  2006-03-01 20:52:32  No: 60849  IP: [192.*.*.*]

スタックトレースはStackWalkあたりを使わないとできません。

単純に例外発生箇所の行番号が知りたいのであれば、
例外クラスに行番号情報を含めてはいかがでしょうか?

私は自前で例外クラスを作って、
マクロを使って行番号なんかを展開してます。

class MyException
{
protected:
  int     _Line;
  _TCHAR* _File;
public:
  MyException( int Line, _TCHAR* File) : _Line(Line), _File(File) {}
  virtual ~MyException() {}

  int Line() const {
    return _Line;
  }
  const _TCHAR* File() const {
    return _File;
  }
};

#define THROW_MY_EXCEPTION() throw MyException(__LINE__, _T(__FILE__))

といった感じです。

編集 削除
kai  2006-03-02 09:17:42  No: 60850  IP: [192.*.*.*]

例外クラスに発生箇所の行番号情報を含めてみます。
ありがとうございました。

編集 削除