Skip to content

Commit

Permalink
add exception expression functions and minor updates
Browse files Browse the repository at this point in the history
  • Loading branch information
mrexodia committed Jun 13, 2019
1 parent b40c096 commit 3534fb4
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 2 deletions.
1 change: 1 addition & 0 deletions introduction/ConditionalBreakpoint.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ This section describes the conditional breakpoint capability in x64dbg.

When a breakpoint is hit, x64dbg will do the following things:

- If the breakpoint is an exception breakpoint, set the system variable `$breakpointexceptionaddress` to the exception address;
- Increment the *hit counter*;
- Set the system variable `$breakpointcounter` to the value of *hit counter*;
- If *break condition* is set, evaluate the [expression](./Expressions.rst) (defaults to `1`);
Expand Down
11 changes: 11 additions & 0 deletions introduction/Expression-functions.md
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,17 @@ This assumes the return address is on the stack (eg you are inside the function)
* `arg.get(index)` : Gets the argument at `index` (zero-based).
* `arg.set(index, value)` : Sets the argument at `index` (zero-based) to `value`.

## Exceptions

This is a set of functions to get information about the last exception. They can be used for exceptions breakpoints to construct more advanced conditions.

* `ex.firstchance()` : Whether the last exception was a first chance exception.
* `ex.addr()` : Last exception address.
* `ex.code()` : Last exception code.
* `ex.flags()` : Last exception flags.
* `ex.infocount()` : Last exception information count (number of parameters).
* `ex.info(index)` : Last exception information, zero if index is out of bounds.

## Plugins

Plugins can register their own expression functions. See the plugin documentation for more details.
3 changes: 1 addition & 2 deletions introduction/inability.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,4 @@ This section gives a list of features currently not supported in x64dbg. You are

* Fine-grained memory breakpoint. Unlike other debuggers, memory breakpoint is supported only on a whole memory page, but not on a subrange of the memory page.
* Search for non-English strings. Searching for non-English strings via the built-in strings search may not be able to find all the non-English strings.
* Log non-English strings into log with built-in "{s:[...]}" syntax.
* Other pending issues at http://issues.x64dbg.com
* Other pending issues at [issues.x64dbg.com](http://issues.x64dbg.com).

0 comments on commit 3534fb4

Please sign in to comment.