2016-04-27 8 views
1

私の(ネイティブC++)アプリケーションがマウスフォーカスを持っている間にブレークしようとしていて、Visual StudioアプリケーションをCtrl-Alt-BreakまたはDebug> Break Allアプリケーションはもはや私が壊れようとしていることをやっていません。フォーカスなしでブレークするようにVisual Studioデバッガを取得する方法

たとえば、5秒後にVisual Studioを中断させる方法はありますか?または、Visual Studioアプリケーションにフォーカスを切り替えることなくBreak Allをトリガーするスクリプトを書くことができる何らかのデバッグAPIがありますか?

フォーカスがないと壊れることがあると、poor man's profilingの助けを借りて、フォーカスに関連するよく知られていないコードを理解しやすくなります。

+0

のVisual Studio(特に2015)プロファイリングツールのトンを持っているので、あなたの目標は、実際にある場合プロファイリングを行うには、それらを使う方が良いでしょう。 –

+3

これはサポートされているデバッグシナリオです。別のマシンでこのアプリケーションを実行し、リモートデバッガを使用する必要があります。 –

+0

ブレークポイントのプロパティを編集することができます。ブレークポイントを達成するためにブレークポイントを設定することができます。 –

答えて

-1

のVisual Studioにマウスのフォーカスを変更せずに分割する2つの方法があります。

  1. Remote Tools and debug from another machineをインストールし、OR

  2. はタイマー付きスレッドを追加して、例えば、そこにブレークポイントを設定します5秒ごとを破るために、このどこかに追加します。

    static bool debug_timer_started = false; 
    if (!debug_timer_started) 
    { 
        debug_timer_started = true; 
        std::thread([] 
        { 
        static int seconds = 5; 
        static bool keep_going = true; 
        while (keep_going) 
        { 
         /* set break point on this line: */ std::this_thread::sleep_for(std::chrono::seconds(seconds)); 
        } 
        }).detach(); 
    } 
    

    あなたはこれらのヘッダが必要になります。

    #include <thread> 
    #include <chrono>