[C++][GameDev] エラー用トレース

| | コメント(0) | トラックバック(0)

共通処理クラスに、デバッグトレースの関数を作った。

/**
 * デバッグトレース
 *
 * @param[in]    a_pszFormat    書式
 */
void CCommon::Trace(const char* a_pszFormat, ...)
{
#ifdef _DEBUG
    va_list    pcParam;         // 引数リスト
    char       szTrace[512];    // 出力文字列

    // 可変引数の取得開始
    va_start(pcParam, a_pszFormat);
    // 出力文字列の作成
    _vsnprintf(szTrace, sizeof(szTrace),
               a_pszFormat, pcParam);
    // 可変引数の取得終了
    va_end(pcParam);

    // デバッグトレース
    OutputDebugString(szTrace);
#endif
}

この関数はエラー発生時とかに使う。

// エラー発生時
if (! bRet)
{
    CCommon::Trace("Errror: %s %s\n",
                   __FUNCTION__, pszErrorMessage);
}

上のフォーマットだと、例えば、

「Errror: CDI::Init DirectInput8オブジェクトの作成に失敗」

って文字列が出力されるんだけど、いろんなとこでこのトレースは使われるわけなんで、出力フォーマットは必ず統一されるようにした方がいい。

それで、直接トレース関数を使うわけじゃなくて、エラー発生用に使うトレース関数を別に作っといた。

/**
 * エラー用デバッグトレース
 *
 * @param[in]    a_pszFunction    関数名
 * @param[in]    a_pszError       エラーメッセージ
 */
void CCommon::TraceOfError(char* a_pszFunction, char* a_pszError)
{
    CCommon::Trace("Errror: %s %s\n",
                   __FUNCTION__, pszErrorMessage);
}

とりあえず、エラー発生した関数名とエラーメッセージだけ出力すればいいかな。ということで、エラー発生時に書く処理はこれ↓。

// エラー発生時
if (! bRet)
{
    CCommon::TraceOfError(__FUNCTION__, pszErrorMessage);
}

トラックバック(0)

このブログ記事を参照しているブログ一覧: [C++][GameDev] エラー用トレース

このブログ記事に対するトラックバックURL: http://blog.1122soft.com/mt4/mt-tb.cgi/66

コメントする

プロフィール

  • 1983年生まれ。
    C++、PHP、JavaScript、ActionScriptで何か作ってます。

技術書

Effective C++ 原著第3版 (ADDISON-WESLEY PROFESSIONAL COMPUTING SERIES)
C++ Coding Standards―101のルール、ガイドライン、ベストプラクティス (C++ in‐depth series)
JavaScript 第5版
まるごとJavaScript & Ajax ! Vol.1
CakePHPガイドブック
CakePHP ポケットリファレンス (Pocket Reference)
Powered by Movable Type 4.01

このブログ記事について

このページは、1122が2008年6月 2日 00:03に書いたブログ記事です。

ひとつ前のブログ記事は「[C++][GameDev] トレース、ログ、エラーメッセージ」です。

次のブログ記事は「[C++][GameDev] DirectX処理クラスは別」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

2008年10月

      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  

リンク