Skip to content

Step Out/Over: one-time breakpoints linger if process breaks before it is reached #21

@Northern-Lights

Description

@Northern-Lights

Description
One-time breakpoints stick around if Step Out breaks on another breakpoint before the one-time breakpoint is reached. This also applies to Step Over if we are stepping over a call, and the code for the call has a breakpoint somewhere inside.

Reason
The Step Out feature scans ahead for the next block terminator (ret/jmp/jcc/hlt) and sets an internal, one-time breakpoint on it. If another breakpoint (say a user breakpoint) is encountered before this block terminator is reached, the internal + one-time breakpoint is not removed when we trap on this other breakpoint.

Possible fix
If IDebugEventHandlers carried an internal "temp_breakpoint", that breakpoint can be set to be removed on every trap.

Metadata

Metadata

Labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions