Как отлаживать .cpp файлы в NeoVim?
Я поставил codelldb
дебаггер в Nvim'е и настроил его взаимодействие в вимом используя DAP
(ниже приведу код файлы dap.lua
). Вроде бы он работает: брейкпоинты ставит, отладку запускает. Но я так и нигде не нашел как передавать аргументы в консоль(например, при вызове std::cin
). Так же при простом запуске отладки в режиме Debug
не активны кнопки шагов(step into
, step over
) - работает только кнопки перезапуска отладки и остановки ее.
Mой
dap.lua
в~/.config/nvim/lua/plugins/
return { { "julianolf/nvim-dap-lldb", dependencies = { "mfussenegger/nvim-dap" }, config = function() require('dapui').setup() local cfg = { configurations = { c = { { name = "Launch debugger", type = "lldb", request = "launch", cwd = "${workspaceFolder}", program = function() local out = vim.fn.system({ "make", "debug" }) if vim.v.shell_error ~= 0 then vim.notify(out, vim.log.levels.ERROR) return nil end return "path/to/executable" end, }, }, }, } require("dap-lldb").setup(cfg) end }, { "rcarriga/nvim-dap-ui", dependencies = { "mfussenegger/nvim-dap", "nvim-neotest/nvim-nio" }, config = function() local dap, dapui = require("dap"), require("dapui") dap.listeners.before.attach.dapui_config = function() dapui.open() end dap.listeners.before.launch.dapui_config = function() dapui.open() end dap.listeners.before.event_terminated.dapui_config = function() dapui.close() end dap.listeners.before.event_exited.dapui_config = function() dapui.close() end --setting keybindings vim.keymap.set('n', '<leader>db', dap.continue, {}) vim.keymap.set('n', '<leader>dt', dap.toggle_breakpoint, {}) vim.keymap.set('n', '<leader>dr', dap.restart, {}) vim.keymap.set('n', '<leader>dc', dap.disconnect, {}) vim.keymap.set('n', '<leader>gb', dap.run_to_cursor, {}) end, }, { "jay-babu/mason-nvim-dap.nvim", dependencies = { "williamboman/mason.nvim", "mfussenegger/nvim-dap", }, config = function() require("mason-nvim-dap").setup({ ensure_installed = { "codelldb" } }) end }, { "mfussenegger/nvim-dap", }, }
Программа которую дебажу
#include <iostream> int main (int argc, char *argv[]) { int a; std::cout << "Enter a number: "; std::cout << "That's yout number: " << a; std::cin >> a; return 0; }
Вот как выглядит мой экран, после того как я запустил отладку.
Можете подсказать что у меня не так? Просто везде искал и нигде нормального ответа или хотя бы примерного конфига не нашел.