3. Visual Studio 2010/Debugging Tools for Windows/検証

 
3.1 サンプルコード
3.2 ツールなしの状態で実行
3.3 ツールありの状態で実行

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();
}

3.2 ツールなしの状態で実行

 ツールを動作させていない状態で実行してみます。

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

3.3 ツールありの状態で実行

 前頁の容量でツールを実行させておいて、サンプルプログラムを実行してみます。

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