While doing crash analysis, I encountered bellow instructions.
74553ef7 50 push eax
74553ef8 e81ba0ffff call MSVCR90!CxxThrowException (7454df18)
74553efd cc int 3
74553efe cc int 3
74553eff cc int 3
74553f00 cc int 3
74553f01 cc int 3
74553f02 cc int 3
While running windbg, I found running stoped on int 3
instruction.
As far as I know int 3
instruction is trap to debugger
exception, which stands for the breakpoint
.
But the thing is:
I've not set any bp on windbg.
So I checked debugger's default bp, and there're no enabled exception handler of windbg like below.
0:009> sx
vcpp - Visual C++ exception - second-chance break - handled
wkd - Wake debugger - second-chance break - not handled
wob - WOW64 breakpoint - second-chance break - handled
wos - WOW64 single step exception - second-chance break - handled
Question:
- Is
int 3
set by windbg? if so, why? - Is
int 3
originally exist on binary image? If so, why compiler inserts this instruction?