Visual Studio Code: Difference between revisions

From dreamcast.wiki
Jump to navigation Jump to search
(Created page with "This is a guide to setup your Visual Studio Code project with debugging support on both real hardware using dcload-ip and with the lxdream-nitro emulator. == Setup Build...")
 
m (starting to improve the Visual Studio Code page)
Line 1: Line 1:
This is a guide to setup your Visual Studio Code project with debugging support on both real hardware using [[dcload-ip]] and with the lxdream-nitro emulator.
This is a guide to setup your Visual Studio Code project with debugging support on both real hardware using [[dcload-ip]] and with the lxdream-nitro emulator.
=== Prerequisites ===
To start with, this tutorial makes the following assumptions:
* You have already installed and [https://dreamcast.wiki/Getting_Started_with_Dreamcast_development set up your KallistiOS development environment].
* You have already downloaded and installed [https://code.visualstudio.com/ Visual Studio Code] (version 1.78.2 was used for this tutorial).
=== VSCode Setup ===
* Launch Visual Studio Code
* (optional but recommended) To keep your configuration settings, plugins, ... specific to Dreamcast projects only:
# Create a "Profile" (Menu: File-Preferences-Profiles) called "Dreamcast"
* (required) Install the following extensions: (Menu: View-Extensions)
# [https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools C/C++] from Microsoft
# [https://marketplace.visualstudio.com/items?itemName=ms-vscode.makefile-tools Makefile Tools] from Microsoft
=== Setup per Project ===
(TODO)


== Setup Build Tasks (Optional) ==
== Setup Build Tasks (Optional) ==
This is an option step as you are able to just specify and launch ELFs. Setting up a build task in VSCode will allow your code to rebuild before launching the debug session.
This is an option step as you are able to just specify and launch ELFs. Setting up a build task in VSCode will allow your code to rebuild before launching the debug session.



Revision as of 12:54, 6 June 2023

This is a guide to setup your Visual Studio Code project with debugging support on both real hardware using dcload-ip and with the lxdream-nitro emulator.

Prerequisites

To start with, this tutorial makes the following assumptions:

VSCode Setup

  • Launch Visual Studio Code
  • (optional but recommended) To keep your configuration settings, plugins, ... specific to Dreamcast projects only:
  1. Create a "Profile" (Menu: File-Preferences-Profiles) called "Dreamcast"
  • (required) Install the following extensions: (Menu: View-Extensions)
  1. C/C++ from Microsoft
  2. Makefile Tools from Microsoft

Setup per Project

(TODO)

Setup Build Tasks (Optional)

This is an option step as you are able to just specify and launch ELFs. Setting up a build task in VSCode will allow your code to rebuild before launching the debug session.

Use the following template to create your own .vscode/tasks.json file:

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "Build",
            "type": "shell",
            "command": "make",
            "args": [
                "all"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
        },
    ]
}

Setup lxdream-nitro Launch Task

Setup a launch configuration for lxdream-nitro in your .vscode/launch.json file:

{
    "version": "0.2.0",
    "configurations": [
         {
            // display name
            "name": "LXDream",
            "type": "cppdbg",
            "request": "launch",
            // match build task name in tasks.json
            "preLaunchTask": "Build",
            "cwd": "${workspaceRoot}",
            // path to elf
            "program": "${workspaceRoot}/hello.elf",
            // path to gdb
            "miDebuggerPath": "PATH_TO_GDB",
            "setupCommands": [{
                "text": "set architecture sh",
                "description": "Set GDB Arch to SuperH",
                "ignoreFailures" : false,
            }],
            "miDebuggerServerAddress": ":9999",
            // path to lxdream-nitro
            "debugServerPath": "PATH_TO_LXDREAM",
            // lxdream-nitro flags
            "debugServerArgs": "--log=DEBUG --gdb-sh4=9999 -A null -e ${workspaceRoot}/hello.elf -n",
            "filterStdout": true,
            "filterStderr": true,
            "externalConsole": false,
            // run on connect
            "stopAtConnect": false,
            // stop at main
            "stopAtEntry": true,
            "launchCompleteCommand": "exec-run",
            "serverStarted": "SH4 GDB server running on port",
            "useExtendedRemote": true
        },
    ]
}