RustRover 2024.1 Help

Switching debuggers and renderers

Choosing a debugger (Windows, Linux)

RustRover provides its own implementation of two debuggers: LLDB and GDB. You may or may not be able to choose between them depending on your OS:

On Windows, the toolchain configured for your project determines the debugger you can use:

  • MSVC toolchain. If you are using Rust's MSVC toolchain, you can only debug code with LLDB.

  • GNU toolchain. With a GNU toolchain, you must use GDB.

RustRover will notify you if the active debugger does not match the project's toolchain:

Notification about a debugger-toolchain mismatch

On Linux, you are free to choose between LLDB and GDB. Both debuggers are bundled, LLDB is enabled by default.

On macOS, you can only use LLDB. It is bundled and enabled by default.

Switch debuggers (Windows, Linux)

  1. Go to Settings | Build, Execution, Deployment | Toolchains.

  2. Locate the Rust section and select the preferred debugger from the drop-down list.

    Switching debugger in the toolchain settings

Rust type renderers (pretty-printers)

You can switch the renderers RustRover uses to display Rust types in the Variables pane.

Switch renderers

  1. Go to Settings | Build, Execution, Deployment | Debugger | Data Views | Rust.

  2. For the debugger in use, select an option from the drop-down list:

    Rust debugger renderers
    • No renderers. This option disables explicit rendering, leaving only the type support provided by GDB or LLDB natively. Because Rust type formatters are currently not available in LLDB and GDB out of the box, this option means no rendering for types other than C/C++ types.

    • Rust compiler’s renderers. With this option, RustRover takes pretty-printers from the standard rustc distribution and loads them onto the debugger.

    • Bundled renderers. The IDE’s own renderers are implemented from scratch for both GDB and LLDB, unifying type representation for the two debuggers. These formatters build tree views for strings, structs, enums, and vectors, making it easier for you to look inside child elements.

      Bundled pretty-printers

      The bundled renderers also support standard library types like HashMap, HashSet, Rc, Arc, Cell, Ref, and others.

      Bundled pretty-printers
Last modified: 11 February 2024