# 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:

* [Start process](https://docs.hex-rays.com/9.1/user-guide/user-interface/menu-bar/debugger/process-control/start-process)
* [Debugger submenu](https://docs.hex-rays.com/9.1/user-guide/user-interface/menu-bar/debugger)
* [How to launch remote debugging](https://docs.hex-rays.com/9.1/user-guide/debugger/remote-debugging)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.hex-rays.com/9.1/user-guide/debugger/local-debugging/linux-debugger.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
