From 116f9332a206767c45095950f09f7c7447b561cf Mon Sep 17 00:00:00 2001 From: Felix Morgner Date: Mon, 14 Jul 2025 11:20:32 +0000 Subject: ide: improve support for vscodium --- .devcontainer/x86-64/devcontainer.json | 3 ++- .gitignore | 1 + .vscode/launch.json | 31 ++++++++++--------------------- .vscode/settings.json | 8 ++++---- .vscode/tasks.json | 4 ++-- CMakeLists.txt | 1 - CMakePresets.json | 3 ++- 7 files changed, 21 insertions(+), 30 deletions(-) diff --git a/.devcontainer/x86-64/devcontainer.json b/.devcontainer/x86-64/devcontainer.json index 0d77167..a317a22 100644 --- a/.devcontainer/x86-64/devcontainer.json +++ b/.devcontainer/x86-64/devcontainer.json @@ -5,8 +5,9 @@ "vscode": { "extensions": [ "basdp.language-gas-x86", + "llvm-vs-code-extensions.vscode-clangd", "ms-vscode.cmake-tools", - "ms-vscode.cpptools", + "webfreak.debug", "zixuanwang.linkerscript" ] } diff --git a/.gitignore b/.gitignore index 8a5ffb8..d0c36aa 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,7 @@ /build /.conan/install /docs/_build +/.cache # Conan Generated CMake presets CMakeUserPresets.json diff --git a/.vscode/launch.json b/.vscode/launch.json index 4dc9fc6..e522ad5 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -3,29 +3,18 @@ "configurations": [ { "name": "(gdb) QEMU", - "miDebuggerPath": "x86_64-pc-elf-gdb", - "type": "cppdbg", - "request": "launch", - "program": "${workspaceFolder}/build/bin/${command:cmake.buildType}/_kernel", - "MIMode": "gdb", - "miDebuggerServerAddress": "localhost:1234", + "type": "gdb", + "request": "attach", + "remote": true, + "target": "localhost:1234", + "valuesFormatting": "prettyPrinters", + "gdbpath": "x86_64-pc-elf-gdb", "cwd": "${workspaceFolder}", - "stopAtEntry": true, "preLaunchTask": "QEMU (gdb)", - "setupCommands": [ - { - "description": "Enable pretty-printing for gdb", - "text": "-enable-pretty-printing", - "ignoreFailures": true - }, - { - "description": "Load file", - "text": "-file-exec-and-symbols ${workspaceFolder}/build/bin/${command:cmake.buildType}/_kernel" - }, - { - "description": "Set breakpoint on _start", - "text": "-break-insert _start" - } + "executable": "${command:cmake.buildDirectory}/bin/${command:cmake.buildType}/_kernel", + "autorun": [ + "-enable-pretty-printing", + "-break-insert _start" ] } ] diff --git a/.vscode/settings.json b/.vscode/settings.json index f0f6745..6178035 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -2,10 +2,10 @@ "cmake.useCMakePresets": "always", "cmake.options.statusBarVisibility": "visible", - "C_Cpp.default.cppStandard": "c++20", - "C_Cpp.autoAddFileAssociations": false, - "C_Cpp.default.configurationProvider": "ms-vscode.cmake-tools", - "C_Cpp.formatting": "clangFormat", + "clangd.arguments": [ + "--compile-commands-dir=${workspaceFolder}/build", + "--query-driver=/opt/toolchain/bin/x86_64-pc-elf-g++" + ], "[cpp]": { "editor.formatOnSave": true, diff --git a/.vscode/tasks.json b/.vscode/tasks.json index 5e8c23f..3b5ae9f 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -17,7 +17,7 @@ "-d", "int,cpu_reset", "-cdrom", - "${workspaceFolder}/build/teachos-${command:cmake.buildType}.iso" + "${command:cmake.buildDirectory}/teachos-${command:cmake.buildType}.iso" ], "isBackground": true, "presentation": { @@ -52,7 +52,7 @@ "-display", "curses", "-cdrom", - "${workspaceFolder}/build/teachos-${command:cmake.buildType}.iso" + "${command:cmake.buildDirectory}/teachos-${command:cmake.buildType}.iso" ], "isBackground": true, "presentation": { diff --git a/CMakeLists.txt b/CMakeLists.txt index 35cfd65..c0e45f8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -75,7 +75,6 @@ add_compile_options( "$<$:-Wextra>" "$<$:-Werror>" "$<$:-pedantic-errors>" - "$<$:-fsanitize=address,leak,bounds,alignment,return,integer-divide-by-zero,vla-bound,null,enum,pointer-overflow>" ) #[============================================================================[ diff --git a/CMakePresets.json b/CMakePresets.json index ecac6fb..b01208a 100644 --- a/CMakePresets.json +++ b/CMakePresets.json @@ -5,9 +5,10 @@ "name": "default", "binaryDir": "${sourceDir}/build", "generator": "Ninja Multi-Config", + "toolchainFile": "${workspaceFolder}/cmake/Platforms/x86_64.cmake", "cacheVariables": { "CMAKE_CONFIGURATION_TYPES": "Debug;MinSizeRel", - "CMAKE_TOOLCHAIN_FILE": "cmake/Platforms/x86_64.cmake" + "CMAKE_EXPORT_COMPILE_COMMANDS": "YES" } } ], -- cgit v1.2.3