Giter VIP home page Giter VIP logo

vim-vebugger's Introduction

INTRODUCTION

Screencast - https://vimeo.com/95775461

Vebugger is yet another debugger frontend plugin for Vim, created because I wasn't happy with the other debugger plugins I found. Vebugger currently supports:

  • Tracking the currently executed command in the source code
  • Debugger flow commands - step-in, set-over, set-out and continue
  • Breakpoints management
  • Evaluating expressions in the current executed scope
  • Messing with the program's state (changing values, calling functions)

Vebugger is built as a generic framework for building frontends for interactive shell debugger, and comes with implementations for:

  • GDB - doesn't need introduction...
  • LLDB - debugger based on LLVM for C-family languages
  • JDB - a Java debugger
  • Mdbg - a .NET debugger(Windows only)
  • PDB - a Python module for debugging Python scripts
  • RDebug - a Ruby command line option for debugging Ruby scripts

Other implementations can be added with ease, and I will accept pull requests that add such implementations as long as they use Vim's |license|.

Vebugger is built under the following assumptions:

  • While command line debuggers share enough in common to make the creation of such a framework as Vebugger possible, the differences between them are too great to be expressed with regular expression. To support them all at least some code has to be written.
  • Unlike IDE users, Vim users tend to understand the tools the operate behind the scenes. While Vebugger automates the common features, it allows you to "open the hood" and interact with the debugger's shell directly so you could utilize the full power of your debugger.
  • I have no intention to aim for the lowest common denominator. If one debugger has a cool feature I want to support, I'll implement it even if the other debuggers don't have it.

Vebugger is developed under Linux. It doesn't work properly under Windows due to lack of PTY support. I have neither plans nor means to support OSX, but I will accept pull requests that add OSX support.

The features that don't work under windows are:

  • RDebug.
  • Displaying output from the debugged program.

REQUIREMENTS

Vebugger requires the vimproc plugin, obtainable from: https://github.com/Shougo/vimproc.vim. Notice that vimproc needs to be built - there are instructions in the GitHub page.

In order for Vebugger to use a debugger, that debugger must be installed and it's executable must be either be in the PATH or set with a global variable (see help vebugger-configuration). In case of RDebug and PDB, which are used from the Ruby and Python modules, the interpreter(ruby or python) is the one that must be installed and in the path.

USAGE

Run help vebugger-launching from Vim to learn how to launch the debugger.

Run help vebugger-usage from Vim to learn how to operate the debugger.

vim-vebugger's People

Contributors

idanarye avatar ingomeyer441 avatar bleshik avatar daltonmatos avatar wsdjeg avatar nguydavi avatar rdnetto avatar bendoh avatar sunaku avatar

Watchers

Daniel L Morris avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.