Newer
Older
invertedlogic / VimFiles / doc / lldb.txt
*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: