Debugger options

 Action    name: SetupDebugger
 

This dialog box allows to specify different settings related to the debugger.

Events

  • Suspend on debugging start

    If selected, the debugger will suspend directly once the debugging starts.

  • Evaluate event condition on exit

    If selected, the debugger will evaluate the event condition immediately before closing the debugging session (once we receive PROCESS_EXITED or PROCESS_DETACHED event)

  • Suspend on process entry point

    If selected, the debugger will insert a temporary breakpoint at the main entry point of the debugged application.

  • Suspend on thread start/exit

    If selected, the debugger will suspend if a new thread starts or if an existing thread terminates.

  • Suspend on library load/unload

    If selected, the debugger will suspend if a new library is loaded or if a previously loaded library is unloaded.

  • Suspend on debugging message

    If selected, the debugger will suspend if the debugged application generates a message destined to the debugger.

Event condition

When one or more debug events (see above) are checked, then this option is used to specify a condition. In the following example, the debugger will suspend the process whenever a module with the name test.dll is loaded:

    get_event_id() == LIB_LOADED && strstr(get_event_module_name(), "test.dll") != -1

Log

  • Segment modifications

    If selected, the debugger will print information regarding segment modifications (creation, deletion, or resizing of segments) since the last event. Note that the debugger doesn't continuously track segment modifications, but detects those only if a debugging event occurs.

  • Thread start/exit

    If selected, the debugger will print a message if a new thread starts or if an existing thread terminates.

  • Library load/unload

    If selected, the debugger will print a message if a new library is loaded or if a previously loaded library is unloaded.

  • Breakpoint

    If selected, the debugger will print a message if the debugged process reaches a breakpoint.

  • Debugging message

    If selected, the debugger will print debugging messages from the application.

Options

  • Reconstruct the stack

    If selected, the debugger will try to reconstruct the chain of stack frames, based on information available on the stack and in the function stack variables.

  • Show debugger breakpoint instructions

    If selected, the debugger will show breakpoint instructions inserted by the debugger itself. This function is mainly useful if the user wants to see the real content of the memory.

  • Use hardware temporary breakpoints

    If selected, IDA will try to use hardware breakpoints for the temporary breakpoints used to implement the "step over" and "run to" functionality. This feature is useful when debugging read-only or self-modifying code, since it does not change the contents of the memory. IDA will fall back to software breakpoints if the attempt to set a hardware breakpoint fails.

  • Autoload PDB files

    If selected, IDA will invoke the PDB plugin to try to load PDB symbols for every new module loaded into process.

  • Optimize single-stepping

    Prevent debugger memory refreshes when single-stepping. See debugger_t::DBG_FLAG_FAST_STEP

  • Disable ASLR

    Disable Address space layout randomization (ASLR). Optional, valid if debugger declares this option is supported, see debugger_t::DBG_FLAG_DISABLE_ASLR

  • Set as just-in-time debugger

    If changed from off to on, IDA will try to register itself as a just-in-time debugger (invoked by the system in case of application crashes) on dialog close. Optional, valid only for Windows OS.

Buttons

  • Edit exceptions

    This button allows the user to setup how the debugger will react to specific exceptions.

  • Reload exceptions

    This button reloads the exception table from the exceptions.cfg file.

  • Set specific options

    Set debugger options (parameters that are specific to the debugger module). Optional, valid if debugger has the additional specific options. See debugger_t::ev_set_dbg_options

See also Debugger submenu.

Last updated

Was this helpful?