local dap = require("dap") -- gdb DAP nativo (gdb >= 14). No usa runInTerminal, así que evita el bug -- de nvim-dap `terminals.acquire` en Neovim 0.13-dev. La salida del programa -- aparece en la consola/repl de dap-ui. dap.adapters.gdb = { type = "executable", command = "gdb", args = { "--interpreter=dap", "--eval-command", "set print pretty on" }, } -- Adaptador cpptools/OpenDebugAD7 (Microsoft) como fallback. dap.adapters.cppdbg = { id = 'cppdbg', type = 'executable', command = '/home/elvis/.local/share/nvim/mason/packages/cpptools/extension/debugAdapters/bin/OpenDebugAD7', } local function pick_program() return vim.fn.input('Path to executable: ', vim.fn.getcwd() .. '/', 'file') end local function pick_args() return vim.split(vim.fn.input('Program arguments: ', ''), " ") end dap.configurations.cpp = { { name = "Launch (gdb)", type = "gdb", request = "launch", program = pick_program, cwd = "${workspaceFolder}", args = pick_args, stopAtBeginningOfMainSubprogram = true, -- equivalente a stopAtEntry en gdb DAP }, { name = "Launch (cppdbg / cpptools)", type = "cppdbg", request = "launch", program = pick_program, cwd = '${workspaceFolder}', stopAtEntry = true, args = pick_args, }, { name = 'Attach to gdbserver :1234', type = 'cppdbg', request = 'launch', MIMode = 'gdb', miDebuggerServerAddress = 'localhost:1234', miDebuggerPath = '/usr/bin/gdb', cwd = '${workspaceFolder}', program = pick_program, args = pick_args, }, } dap.configurations.c = dap.configurations.cpp