Search code examples
c++visual-studio-2010visual-studiodebuggingvisual-studio-debugging

C++ source code line that stops execution and starts Visual Studio debugger


Is there a line of source code in C++ that will pause execution and start the debugger? Basically, I'm looking for the Matlab keyboard functionality.

I'm using Visual Studio 2010 and compiling in Debug mode.

I know I can set a breakpoint in the source code editor, insert a desired list of command arguments in the project properties, and use the Debug > Start Debugging (F5) option. But I'd like to be able to run the program from the command line and still get to the Visual Studio debugger.


Solution

  • Use __debugbreak(). It sets a breakpoint in your code (something, that was achieved on x86 using __asm int 3; instruction).

    When such breakpoint is encountered in application executed without debugger, you will be prompted to run it. You will see window similar to this one:

    enter image description here

    Then, you can run new instance of Visual Studio or attach already running one.

    EDIT

    Oh, one more thing: you can also attach debugger to any running process in your system.

    In Visual Studio, click: Debug -> Attach to Process and then select desired process.