-
Notifications
You must be signed in to change notification settings - Fork 75
Setting Breakpoints
Breakpoints are used to halt execution of a program at certain point in order to inspect the program's current state and step through its execution.
In the Debugger Window, breakpoints are set with the "Break" checkboxes in the table. Once they are set, when a running program hits the breakpoint, the program will be paused.
When a breakpoint is hit, one can inspect the registers in the thread that was hit and inspect the backtrace to follow the program's execution.
There are several ways to step through the program once a breakpoint is hit:
- Continue execution until another breakpoint is hit
- Step into next instruction
- Step over call instructions
- Step out of current function
Buttons for these actions are located on the Debugger's toolbar. They also have shortcuts found in the Debug menu, as well as global hotkeys that can be configured in Preferences.
Sometimes breaking on a breakpoint only when some condition is met is desirable, especially for an instruction that may be executed frequently for various different reasons.
Here are examples of valid expressions:
4 < eax < 10
rbp == 0x140508F
vm.readInt8(eax + esi + 0x432) in [1, 4]
These expressions are evaluated with Python, and the methods belonging to the vm object are accessible as documented in the Scripting Functions reference. Registers that are displayed in the debugger when a breakpoint hits are also accessible.
Searching
- Introduction to Searching
- Data Types
- Storing All Values
- Pointers
- Search Windows
- Pausing Targets
- Web Games
Memory
Debugging
Scripting