*lldb.txt* A plugin that enables debugging from your favourite editor
_ ____ ____
_ __(_)___ ___ / / /___/ / /_
| | / / / __ `__ \______/ / / __ / __ \
| |/ / / / / / / /_____/ / / /_/ / /_/ /
|___/_/_/ /_/ /_/ /_/_/\__,_/_.___/
LLDB Debugger Ingegration For VIM
==============================================================================
CONTENTS *lldb-contents*
1. Introduction .................... |lldb-intro|
2. Getting Started ................. |lldb-start|
3. Commands ........................ |lldb-commands|
4. Mappings ........................ |lldb-mappings|
4. License ......................... |lldb-license|
5. Bugs ............................ |lldb-bugs|
6. Contributing .................... |lldb-contributing|
Maintainer : Tobias Pflug <tobias.pflug@gmail.com>
Original Author: Daniel Malea <daniel.malea@intel.com>
License: Same terms as Vim itself (see |license|)
INTRODUCTION *lldb-intro*
The plugin provides an interface to the lldb debugger allowing for
convenient debugging sessions inside your favorite editor including
features such as breakpoints, stepping, watchpoints etc.
The original plugin can be found here:
http://llvm.org/svn/llvm-project/lldb/trunk/utils/vim-lldb/
Credit for pretty much all current functionality goes to the original
authors. Currently only minor modifications have been made to the
original plugin.
GETTING STARTED *lldb-start*
To quickly get started compile (don't forget to compile with debugging
symbols) and start some program. Then open a source file belonging to the
program in vim and execute ':Lattach <program-name>.' Then select some
line in the source file and execute ':Lbreakpoint' to set a breakpint at
the current line.
Once the program reaches the specified breakpoint you will be able to
inspect state and step through the proram using the commands described below.
COMMANDS *lldb-commands*
The LLDB command interpreter is exposed to Vim's command mode using the
':L' prefix. Tab-completion is available and will cycle through commands.
Some commands have modified behaviour in Vim; for example, :Lbreakpoint
with no arguments will set a breakpoint at the current cursor, rather than
printing the standard help information for the LLDB command 'breakpoint'.
*lldb-windows*
In addition to the standard commands available under the LLDB interpreter,
there are also commands to display or hide informational debugger panes.
Windows can be shown or hidden using the ':Lhide <name>' or ':Lshow <name>'
commands.
*lldb-:Lhide*
:Lhide [windowname] Hide informational debugger pane named 'windowname'.
*lldb-:Lshow*
:Lshow [windowname] Show informational debugger pane named 'windowname'.
Possible window name arguments to the Lhide and Lshow commands include:
* backtrace
* breakpoints
* disassembly
* locals
* registers
* threads
*lldb-:Lattach*
:Lattach <process-name> Attach to a process by name.
*lldb-:Ldetach*
:Ldetach Detach from the current process.
*lldb-:Ltarget*
:Ltarget [[create] executable]
Create a target with the specified executable. If
run with a single argument, that argument is assumed
to be a path to the executable to be debugged.
Otherwise, all arguments are passed into LLDB's command
interpreter.
*lldb-:Lstart*
:Lstart Create a process by executing the current target
and wait for LLDB to attach.
*lldb-:Lrun*
:Lrun Create a process by executing the current target
without waiting for LLDB to attach.
*lldb-:Lcontinue*
:Lcontinue Continue execution of the process until the next
breakpoint is hit or the process exits.
*lldb-:Lthread*
:Lthread <args> Passes through to LLDB. See :Lhelp thread.
*lldb-:Lstep*
:Lstep Step into the current function call.
*lldb-:Lstepin*
:Lstepin Step into the current function call.
*lldb-:Lstepinst*
:Lstepinst Step one instruction.
*lldb-:Lstepinstover*
:Lstepinstover Step one instruction, but skip over jump or call
instructions.
*lldb-:Lnext*
:Lnext Step to the next line.
*lldb-:Lfinish*
:Lfinish Step out of the current function.
*lldb-:Lbreakpoint*
:Lbreakpoint [args] When arguments are provided, the lldb breakpoint
command is invoked. If no arguments are provided,
a breakpoint at the location under the cursor.
*lldb-:Lprint*
*lldb-:Lpo*
*lldb-:LpO*
:Lprint <expr> Aliases to the lldb print and po commands. Cursor
:Lpo <expr> word (cursor WORD for LpO) will be used when
:LpO <expr> expression omitted.
MAPPINGS *lldb-mappings*
There are no default mappings defined by the plugin. All commands described
above can be mapped by defining a respective variable:
let g:lldb_map_Lframe = "<leader>f"
This will map the Lframe command to "<leader>f". Other commands can be
mapped accordingly using 'lldb_map_' + <command name>.
LICENSE *lldb-license*
Same as Vim itself.
BUGS *lldb-bugs*
If you run into a bug use the github issue tracker to report it:
http://github.com/gilligan/vim-lldb/issues/
CONTRIBUTING *lldb-contributing*
If you want to help out you are more then welcome to do so. In fact
I am sure there are plenty of people out there that will do a better
job with this plugin than me. My C skills are more than rusty. I mostly
wanted to make this nice plugin more public and host it in a way in which
it is easy to install with your favorite plugin manager.
Long story short: Bring on your forks and pull requests.
vim:tw=78:sw=4:ft=help:norl: