小さい頃はエラ呼吸

いつのまにやら肺で呼吸をしています。


DebugBreakとプロセスアタッチでC++アプリケーションをデバッグする

はじめに

DebugBreakとプロセスアタッチを使ったC++アプリケーションデバッグの方法をまとめてみました。

Windowsデバッグの極意 ツールを使いこなして、バグハント!
Mario Hewardt Daniel Pravat
アスキー・メディアワークス
売り上げランキング: 307,859

DebugBreakとプロセスアタッチでC++アプリケーションをデバッグする

1.デバッグしたいプログラムにDebugBreak();を挿入します。

#include "stdafx.h"
#include <windows.h>
#include <stdlib.h>

int _tmain(int argc, _TCHAR* argv[])
{
  #ifdef _DEBUG
    DebugBreak();
  #endif
  char tmp[20] = "hello world!\n";

  printf("%s", tmp);
  system("pause");
  return 0;
}

2.デバッグビルドします。
3.アプリケーションを実行し、目的のプログラムを呼び出します。
4.DebugBreak();の書かれた箇所に処理がきたところで、以下のようなダイアログが表示されます。

5.プログラムの実行が中断している間に、Visual Studioからプロセスにアタッチします。デバッグメニューから「プロセスにアタッチ」を選択します。

6.デバッグ対象のアプリケーションを選択し、「アタッチ」をクリックします。

7.「プログラムをデバッグします」を選択します。

8.以下のダイアログが表示されたら、「中断」をクリックします。

9.DebugBreak();の箇所でプログラムが中断しているので、F10キーを教えてステップ実行することができます。