# Linux debugger

The Linux debugger has the following particularities and limitations:

* The debugger server can handle only one IDA client at a time
* By default, the 64-bit debugger will try to load "libunwind-x86\_64.so.8" and "libunwind-ptrace.so.0" in order to help with stack recovery.
* ARMLinux: hardware breakpoints are not supported
* ARMLinux: The THUMB mode is not supported

## Configuration options

Debugger-specific options can be changed from `Debugger -> Debugger options -> Set specific options`.

The linux debugger has the following configuration options:

* **Path to libunwind**

  * **"libunwind-x64\_64.so.8"** (the default) - the debugger will try to load libunwind "libunwind-x86\_64.so.8" + "libunwind-ptrace.so.0" pair using the regular 'ld' search path.
  * **"libunwind-x64\_64.so"** (note the lack of ".8" at the end) - like the default, except the debugger will look for "libunwind-x86\_64.so" and "libunwind-ptrace.so" (this is particularly useful for working with libunwind "dev" packages)
  * **absolute path to "libunwind-x64\_64.so.8" or "libunwind-x64\_64.so"** - the debugger will try to load libunwind only from the provided path.
  * **absolute path to "libunwind-x64\_64.so\[.8]"** - the debugger will try to load the two libraries from there (the absolute path to "libunwind-ptrace.so\[.0]" will be derived from that of "libunwind-x64\_64.so\[.8]")
  * **left blank** - don't use libunwind to collect stack traces

  By default this is set to libunwind-x86\_64.so meaning the default path will be used to load libunwind-x86\_64.so(.8) and libunwind-ptrace.so(.0). If an absolute path is provided, both libraries will be loaded from this path. If left empty, the call stack will be analyzed by IDA and not libunwind.

## Related pages

See also:

* [Debugger menu](https://github.com/HexRaysSA/docs/blob/9.3/user-guide/user-interface/menu-bar/debugging/common-actions.md)
* [How to launch remote debugging](https://docs.hex-rays.com/user-guide/debugger/remote-debugging)
