Overview
What is IDA Debugger?
The IDA Debugger is an integrated dynamic analysis feature built into IDA that lets you execute and inspect programs directly within the IDA environment. Rather than switching between a disassembler and an external debugging tool, IDA Debugger bridges static and dynamic analysis in a single workflow. You can set breakpoints, step through instructions, inspect registers and more, all without leaving IDA.
Where to find it
Debugger functionality is primarily accessed through the Debugger menu. On first use, select a debugger to populate the list of available actions. From there you configure process options (application path, hostname, port, password), manage breakpoints, and open debugger-specific windows such as Locals, Watches, Stack Trace, and the Tracing window.
You can also launch the debugger directly from the command line without creating a database in advance using the -r switch (see the Instant Debugger section below).
Debugger Modes
The IDA Debugger offers a few available modes, depending on your target and needs.
Local Debugging
Local debugging runs the target process on the same machine as IDA. This is the simplest setup and requires no additional configuration beyond selecting the right backend for your platform. IDA ships with local debugger backends for:
Windows via the Win32 backend or the WinDbg backend (which also supports kernel-mode debugging and Time Travel Debugging)
Linux via the Linux debugger backend
macOS via the Intel/ARM macOS debugger backend
Remote Debugging
Remote debugging lets IDA control a process running on a separate machine. This is essential when the target environment cannot run IDA itself (such as an Android device, an embedded Linux board, or a remote Windows server).
The workflow is straightforward: you start a lightweight debugger server on the remote host and then connect to it from IDA using the Debugger → Process Options dialog, where you specify the hostname, port, and an optional password.
Instant Debugger (Command-Line)
The -r switch lets you start a debugging session directly from the command line, skipping the normal database creation step. The full format is:
Specialized Debugger Modes
Beyond the standard local and remote modes, IDA offers several specialized debugger backends for specific use cases.
Android Native Debugger
Targets ARM32, AArch64, x86, and x86_64 Android processes. Both ARM and Thumb mode code are supported, and multithreaded applications can be debugged.
Dalvik Debugger
A dedicated plugin for debugging Android applications running on the Dalvik Virtual Machine, with full source-level debugging support. It integrates with the Android Debug Bridge (adb) and requires the package name and activity from AndroidManifest.xml to launch an application.
Remote iOS Debugger
Allows debugging iOS applications from IDA by acting as a client to Apple's debugserver, which must already be installed on the target device. It supports both traditional iOS debugging and the newer CoreDevice approach introduced in iOS 17.
Replayer Debugger
A pseudo-debugger for replaying previously recorded execution traces. Traces can be recorded at instruction level, function level, or basic block level using any of IDA's supported debugger backends. The key advantage of the replayer is the ability to step backwards through a trace — the Debugger → Step Back command — making it significantly easier to reconstruct what happened during a specific execution.
Last updated
Was this helpful?

