All Projects → dbgx → Lldb.nvim

dbgx / Lldb.nvim

Licence: other
Debugger integration with a focus on ease-of-use.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Lldb.nvim

Lldb
Project moved to: https://github.com/llvm/llvm-project
Stars: ✭ 412 (+62.2%)
Mutual labels:  debugger, lldb
Vegvisir
A browser based GUI for **LLDB** Debugger.
Stars: ✭ 189 (-25.59%)
Mutual labels:  debugger, lldb
Voltron
A hacky debugger UI for hackers
Stars: ✭ 5,599 (+2104.33%)
Mutual labels:  debugger, lldb
Vscode Lldb
A native debugger extension for VSCode based on LLDB
Stars: ✭ 866 (+240.94%)
Mutual labels:  debugger, lldb
gdbundle
Minimalist plugin manager for GDB and LLDB
Stars: ✭ 72 (-71.65%)
Mutual labels:  debugger, lldb
Nvim Dap
Debug Adapter Protocol client implementation for Neovim (>= 0.5)
Stars: ✭ 326 (+28.35%)
Mutual labels:  debugger, neovim
Vim Padre
Debugger plugin for VIM
Stars: ✭ 42 (-83.46%)
Mutual labels:  debugger, lldb
Nvim Gdb
Neovim thin wrapper for GDB, LLDB, PDB/PDB++ and BashDB
Stars: ✭ 341 (+34.25%)
Mutual labels:  lldb, neovim
nvim-dap-python
An extension for nvim-dap, providing default configurations for python and methods to debug individual test methods or classes.
Stars: ✭ 70 (-72.44%)
Mutual labels:  debugger, neovim
Ds2
Debug server for lldb.
Stars: ✭ 243 (-4.33%)
Mutual labels:  debugger, lldb
Code Debug
Native debugging for VSCode
Stars: ✭ 232 (-8.66%)
Mutual labels:  debugger, lldb
lldbg
A lightweight native GUI for LLDB.
Stars: ✭ 83 (-67.32%)
Mutual labels:  debugger, lldb
hilda
LLDB wrapped and empowered by iPython's features
Stars: ✭ 99 (-61.02%)
Mutual labels:  debugger, lldb
lldb debugger
Helpful commands when using lldb.
Stars: ✭ 27 (-89.37%)
Mutual labels:  debugger, lldb
scala-utils.nvim
Utilities for working with Scala in NeoVim.
Stars: ✭ 15 (-94.09%)
Mutual labels:  neovim
dotfiles
Configs for apps I care about
Stars: ✭ 19 (-92.52%)
Mutual labels:  neovim
igs.nvim
A minimalist Neovim plugin that enhances the usage of git status inside Neovim.
Stars: ✭ 17 (-93.31%)
Mutual labels:  neovim
dotfiles
⛩️ My dotfiles on Artix Linux. Gruvbox | Neovim | tmux
Stars: ✭ 56 (-77.95%)
Mutual labels:  neovim
slyblime
Interactive Lisp IDE with REPL, Inspector, Debugger and more for Sublime Text 4.
Stars: ✭ 35 (-86.22%)
Mutual labels:  debugger
dotneovim
My NeoVIM configuration
Stars: ✭ 15 (-94.09%)
Mutual labels:  neovim

LLDB Neovim Frontend

Note: This project is no longer actively maintained. See this comment for details.

This plugin provides LLDB debugger integration for Neovim (demo gif) featuring:

  • Elaborate view of debugger state
  • Event-based, non-blocking UI
  • Persistence of breakpoints and more across exits (session saving)
  • Jump to code from Backtrace or Threads windows
  • Modal approach: define modes and replay commands during mode-switches
  • Tab-completion for LLDB commands

This plugin started out as a fork of https://github.com/gilligan/vim-lldb which was forked from http://llvm.org/svn/llvm-project/lldb/trunk/utils/vim-lldb/

This plugin takes advantage of Neovim's job API to spawn a separate process and communicates with the Neovim process using RPC calls.

Prerequisites

Installation

  1. Using a plugin manager such as vim-plug:

        Plug 'dbgx/lldb.nvim'
    

    Alternatively, clone this repo, and add the following line to your nvimrc:

        set rtp+=/path/to/lldb.nvim
    
  2. Execute:

        :UpdateRemotePlugins
    

    and restart Neovim.

Goals

The plugin is being developed keeping 3 broad goals in mind:

  • Ease of use: Users with almost zero knowledge of command line debuggers should feel comfortable using this plugin.
  • Completeness: Experienced users of LLDB should not feel restricted.
  • Customizability: Users should be able to bend this plugin to their needs.

Getting started

Here is a short screencast demonstrating the basics: Youtube

Also check out the getting started section from vim-docs (:h lldb-start). For easy navigation of docs, I suggest using viewdoc plugin by powerman.

FAQ

I use Mac! [...]

You have 2 choices:

  1. Use system python as the default python2 plugin provider of Neovim. Choosing this means you can use the LLDB that comes with XCode inside Neovim too. Read this awesome blog post by @Quiark for more details.
  2. I don't like the system version of python -- it's 2.7.X, but I want 2.7.Y which has this feature Z. No worries (I hope), just install the brew version of LLVM with LLDB and python support. (Good luck! You will need it!) Also see #15 and #18 for all the gory details of troubleshooting.

This plugin does not work / stopped working!!

  • Try :UpdateRemotePlugins, and restart Neovim.
  • Try running the test script test/run.sh, and see how it goes. If you encounter an error during import lldb, see #6 (comment).

Please file a bug report (also see :help lldb-bugs) if the problem persists.

Which all languages does LLDB support other than C/C++?

The program counter is pointing to the wrong line in the source file at a breakpoint hit.

Try clang instead of gcc (fingers crossed). See clang comparison:

Clang does not implicitly simplify code as it parses it like GCC does. Doing so causes many problems for source analysis tools.

How do I attach to a running process?

To be able to attach, the "attacher" needs to have special permissions. The easiest method is to run a debug server as 'sudo' and connect to it. See the question below.

Remote debugging does not work!!

I haven't been able to get gdbserver, lldb-gdbserver or lldb-server gdbserver to work properly with the python API. But the following works; run:

# use sudo if you want to attach to a running process
$ lldb-server platform --listen localhost:2345

# in older versions of lldb, use this instead
$ lldb-platform --listen localhost:2345

The above command will start the server in platform mode and listen for connections on port 2345. Now, from the client (the plugin), run:

(lldb) platform select remote-linux
(lldb) platform connect connect://localhost:2345
(lldb) process attach --name cat

For more info on this, see Remote Debugging.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].