[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]

Re: TOFU on 1st shift-jis *.c



>> On Thu, 15 Jan 2004 17:33:07 +0900, Katsuhiko Terawaki <wakky@xxxxxxxxxxxxxxxxxxx> said:

K> PS Meadow上でキャプチャできるといいんですが...

プログラムをprintfデバッグ手法でやるなら、できなくはないですね。

C99じゃないと使えないマクロとか混じってますが…

/* フォーマット化文字列には変数につっこんだ文字列はつかうな */
#if _DEBUG
#define dprint(format, ...) (_dbgprint(TEXT("%s:%d (%s)") format, __FILE__, __LINE__, __func__, ##__VA_ARGS__))
#else
#define dprint(format, ...) ((VOID)0)
#endif

#define BUFSZ 4096
TCHAR buf[BUFSZ];
VOID _dbgprint(LPCTSTR fmt, ...){
  va_list args;
  va_start(args, fmt);
#if UNICODE
  vswprintf(buf, BUFSZ, fmt, args);
#else
  vsprintf(buf, fmt, args);
#endif
  va_end(args);
  OutputDebugString(buf);
  OutputDebugString(TEXT("\n"));
}


 dprint(TEXT("i = %d"), i);
こんな感じのコードをつっこんでおいてコンパイルしたプログラムを次のよう
に実行する
M-x cd C-m <SOURCE DIRECTORY> C-m
M-x compile C-m DbgMon C-m
M-! <PROGRAM> C-m
こうすることで一応ソースにジャンプできます
# パイプがなかなかフラッシュされないようで、ちょっと妙な動きするため
# あまり利用していないので記憶違いしていたらスミマセン