{
    "configurations": [
        {
            "type": "cppdbg",
            "request": "launch",
            "name": "Launch Kernel",
            "program": "${workspaceFolder}/build/kernel.sym",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "miDebuggerPath": "x86_64-elf-gdb",
            "miDebuggerServerAddress": "127.0.0.1:1234",
            "setupCommands": [
                // {
                //     "text": "source ${env:HOME}/.rustup/toolchains/nightly-aarch64-apple-darwin/lib/rustlib/etc/gdb_load_rust_pretty_printers.py",
                //     "description": "Load Rust pretty printers",
                //     "ignoreFailures": false
                // },
                {
                    "text": "-enable-pretty-printing",
                    "description": "Enable GDB pretty printing",
                    "ignoreFailures": true
                },
                {
                    "text": "source ${workspaceFolder}/pretty-print.py",
                    "description": "Load GDB pretty printers",
                    "ignoreFailures": false
                },
            ],
            "preLaunchTask": "debug run",
            "postDebugTask": "kill qemu"
        },
        {
            "type": "cppdbg",
            "request": "launch",
            "name": "Attach Kernel",
            "program": "${workspaceFolder}/build/kernel.sym",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "miDebuggerPath": "x86_64-elf-gdb",
            "miDebuggerServerAddress": "127.0.0.1:1234",
            "setupCommands": [
                {
                    "text": "-enable-pretty-printing",
                    "description": "Enable GDB pretty printing",
                    "ignoreFailures": true
                }
            ]
        }
    ]
}
