CLion Debugging

From dreamcast.wiki
Revision as of 15:58, 6 January 2023 by Unknown user (talk) (→‎Setup)
Jump to navigation Jump to search

This guide will help with setting up CLion for remote debugging through dcload's GDB feature.

Setup

The following criteria must be met before following this guide:

Creating a debug configuration

After opening your project in CLion, click the dropdown for the current debug/run configuration and select "Edit Configurations...":

CLion Edit Configuration.png

In the configuration editor window, select the + icon to create a new configuration and select "Remote GDB Debugger":

Remote GDB Server.png

Remote GDB Server Settings

Now that the new configuration has been created, the specific settings can now be populated to enable remote debugging sessions.

Setup SSH credentials

CLion handles setting up and running the remote GDB server instance. Unfortunately, it requires running the executable through SSH which means CLion will have to "remotely" login to the same computer to run the dcload session. Once the host system is configured for SSH access, it's as simple as creating a new set of credentials within the debug configuration setup window to allow CLion to access your computer over SSH.

First, select the settings cog beside Credentials in the debug configuration:

SSH Credentials.png

Create a new set of credentials using the + button and fill in the information to be able to remotely connect to the host system:

SSH Credentials Page.png

If dcload will be run from the same system, it should be enough to enter "localhost" as the host and then fill in the user credentials for the user account on the host system. Using the "Test Connection" button should be an indication of whether the host system or credentials have been setup correctly. After saving the new SSH credentials, select them from the "Credentials" dropdown in the debug configuration page.

GDB Configuration Settings

Use the following settings in the debug configuration page:

  • Name: Dreamcast Debug IP/Serial (really, it's up to the user)
  • Target: Your project
  • Executable: Your executable for your project
  • GDB: Bundled GDB (This can handle SH-4 executables)
  • Credentials: The credentials created in the previous section
  • Upload Executable: Never
  • 'target remote' args: localhost:2159 (default port for dcload's GDB instance)
  • GDB Server: /path/to/dc-tool-[ip|serial]
  • GDB Server args: -g -x $CMakeCurrentBuildDir$/<your executable name>.elf -c $CMakeProjectDir$ -t <IP address or /dev/tty device>
  • -g: Starts dcload with GDB
  • -x: Uploads and executes your binary
  • -c: Points dcload to your project directory to be able to load files with "/pc/" (requires superuser)
  • -t: The device dcload should target
  • Advanced GDB Server Options
  • Run with root privileges: Checked

Once all settings have been configured, click "Apply" and the configuration should be ready.