Thanks Elysia,
I have tried in command line, when executing DebugBreak, there will be the following events happen,
(running from command line)
1. select whether to send debug information to Microsoft
2. JIT debugger dialog will be ok and let us select which debugger to use;
3. If we select Visual Studio, then the break-continue-ignore dialog will be displayed.
Do you meet with the same sequences in your environment (I have attached the code below)? If yes, as you mentioned, your step "assert dialog" is my step 3 (assert dialog you mean the break-continue-ignore dialog)? And your step 4 is my step 2? So, in your environment, step 3 happens before step 2?
--------------------
In step 4, it searches for a JIT debugger and launches it if you will. It's the debug dialog.
The "assert dialog" is not step 4. It's step 0. When you click continue, it invokes int 3, thus starting the chain.
--------------------
Code:
#include "Windows.h"
int main()
{
int a;
int b;
int c;
/*
__try
{
*/
a = 100;
b = 200;
c = 300;
DebugBreak();
a = 400;
/*
}
__except(GetExceptionCode() == EXCEPTION_BREAKPOINT ?
EXCEPTION_EXECUTE_HANDLER : EXCEPTION_CONTINUE_SEARCH)
{
// No debugger is attached, so return FALSE
// and continue.
return FALSE;
}
*/
return TRUE;
}
Originally Posted by
Elysia
Erm what, huh, no?
In step 4, it searches for a JIT debugger and launches it if you will. It's the debug dialog.
The "assert dialog" is not step 4. It's step 0. When you click continue, it invokes int 3, thus starting the chain.
regards,
George