Mesoscopic Programming

タコさんプログラミング専門

Tips #017 書式付デバッガ出力

不具合原因を調査するのにデバッガ出力はかかせない。
ウィンドウズには OutputDebugString() という便利な関数があるが、
変数の内容を見たいのに文字列しか受け付けないのはいただけない。
いちいち文字列変数を用意してたらめんどくさくて本末転倒なので書式付デバッガ出力を用意した。

int DebugPrintf( LPCTSTR format, ... )
{
    va_list args;
    int     len;
    char    * buf;

    va_start( args, format );

    len = _vscprintf( format, args ) + 1;
    buf = ( char * ) malloc( len * sizeof ( char ) );
    len = vsprintf( buf, format, args );

    OutputDebugString( buf );

    free( buf );

    return len;
}

以上です。