Visual Studio - Visual Studio 2010 - Debugging Tools for Windows - 検証

 クラウディア
1. サンプルコード
2. ツールなしの状態で実行
3. ツールありの状態で実行

1. サンプルコード

 こういったサンプルコードを書いてみました。

struct struct1
{
    int n[10];
};

void sub(void)
{
    try
    {
        struct1* p1;

        p1 = (struct1 *)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(*p1));

        int n[11] = {};

        for (int i=0; i<sizeof(n)/sizeof(int); i++)
        {
            n[i] = p1->n[i];
        }

        HeapFree(GetProcessHeap(), 0, p1);
    }
    catch (...)
    {
        cerr << "例外が発生しました" << endl;
    }

    cerr << "Enter キーを入力してください。" << endl;
    getchar();
}

2. ツールなしの状態で実行

 ツールを動作させていない状態で実行してみます。
「Debugging Tools for Windows」-「Enter キーを入力してください」

 何事もなく終わっているように見えます。
 100% こうなるわけではないことは理解しておいてください。

3. ツールありの状態で実行

 前頁の容量でツールを実行させておいて、サンプルプログラムを実行してみます。
「Debugging Tools for Windows」-「例外が発生しました」「Enter キーを入力してください」

 例外を発生させることができました。

ハイスピードプラン