Visual Studio Code: Difference between revisions
		
		
		
		
		
		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 17: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:
- You have already installed and set up your KallistiOS development environment.
 - You have already downloaded and installed 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)
 
- C/C++ from Microsoft
 - 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
        },
    ]
}