跳至主要內容

约 188 字小于 1 分钟

远程调试

在远程调试时,可能会遇到可执行文件需要 sudo 权限的情况,这时需要在 launch.json 中添加如下配置:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "sudo myapp",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/build/exe",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "miDebuggerPath": "${workspaceFolder}/gdb_root.sh",
            "MIMode": "gdb"
        }
    ]
}

同时在项目文件夹根目录下增加gdb_root.sh

#!/bin/bash
SELF_PATH=$(realpath -s "$0")

if [[ "$SUDO_ASKPASS" = "$SELF_PATH" ]]; then
    zenity --password --title="$1"
else
    exec env SUDO_ASKPASS="$SELF_PATH" sudo -A /usr/bin/gdb $@
fi

clangd 插件

微软提供的 c 插件智能感知能力有时存在问题,可以使用 clangd 替代,该插件依赖 cmake 构建提供的compile_commands.json文件。 该插件和微软的 c 插件存在冲突,可以通过如下配置关闭 c 插件的智能感知功能

"C_Cpp.intelliSenseEngine": "disabled"
上次编辑于: