Make GDB, JDB, PDB and RDebug look at global variables for exeutable paths.

Mdbg already had this feature, since the Windows SDK doesn't normally
put it in the PATH(just like any other Microsoft tool that assumes you
are going to use Visual Studio and don't need the PATH...)
This commit is contained in:
IdanArye 2014-05-23 17:43:01 +03:00
parent 6e2838c365
commit 722d1e49b8
6 changed files with 26 additions and 8 deletions

View File

@ -56,7 +56,8 @@ https://github.com/Shougo/vimproc.vim. Notice that vimproc needs to be built -
there are instructions in the GitHub page. there are instructions in the GitHub page.
In order for Vebugger to use a debugger, that debugger must be installed and In order for Vebugger to use a debugger, that debugger must be installed and
it's executable must be in the PATH. In case of RDebug and PDB, which are used 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 from the Ruby and Python modules, the interpreter(`ruby` or `python`) is the
one that must be installed and in the path. one that must be installed and in the path.

View File

@ -6,7 +6,8 @@ function! vebugger#gdb#searchAndAttach(binaryFile)
endfunction endfunction
function! vebugger#gdb#start(binaryFile,args) function! vebugger#gdb#start(binaryFile,args)
let l:debugger=vebugger#std#startDebugger('gdb -i mi --silent '.fnameescape(a:binaryFile)) let l:debugger=vebugger#std#startDebugger(shellescape(vebugger#util#getToolFullPath('gdb','gdb'))
\.' -i mi --silent '.fnameescape(a:binaryFile))
let l:debugger.state.gdb={} let l:debugger.state.gdb={}

View File

@ -1,5 +1,6 @@
function! vebugger#jdb#start(entryClass,args) function! vebugger#jdb#start(entryClass,args)
let l:debugger=vebugger#std#startDebugger('jdb'.(has_key(a:args,'classpath') ? ' -classpath '.fnameescape(a:args.classpath) : '')) let l:debugger=vebugger#std#startDebugger(shellescape(vebugger#util#getToolFullPath('jdb','jdb'))
\.(has_key(a:args,'classpath') ? ' -classpath '.fnameescape(a:args.classpath) : ''))
let l:debugger.state.jdb={} let l:debugger.state.jdb={}
if has_key(a:args,'srcpath') if has_key(a:args,'srcpath')
let l:debugger.state.jdb.srcpath=a:args.srcpath let l:debugger.state.jdb.srcpath=a:args.srcpath

View File

@ -1,5 +1,6 @@
function! vebugger#pdb#start(entryFile,args) function! vebugger#pdb#start(entryFile,args)
let l:debugger=vebugger#std#startDebugger('python -m pdb '.a:entryFile.' '.vebugger#util#commandLineArgsForProgram(a:args)) let l:debugger=vebugger#std#startDebugger(shellescape(vebugger#util#getToolFullPath('python','python'))
\.' -m pdb '.a:entryFile.' '.vebugger#util#commandLineArgsForProgram(a:args))
let l:debugger.state.pdb={} let l:debugger.state.pdb={}

View File

@ -1,5 +1,6 @@
function! vebugger#rdebug#start(entryFile,args) function! vebugger#rdebug#start(entryFile,args)
let l:debugger=vebugger#std#startDebugger('ruby -rdebug '.a:entryFile.' '.vebugger#util#commandLineArgsForProgram(a:args)) let l:debugger=vebugger#std#startDebugger(shellescape(vebugger#util#getToolFullPath('ruby','ruby'))
\.' -rdebug '.a:entryFile.' '.vebugger#util#commandLineArgsForProgram(a:args))
let l:debugger.state.rdebug={} let l:debugger.state.rdebug={}
let l:debugger.state.std.config.externalFileStop_flowCommand='stepover' "skip external modules let l:debugger.state.std.config.externalFileStop_flowCommand='stepover' "skip external modules

View File

@ -58,9 +58,10 @@ Notice that vimproc needs to be built - there are instructions in the GitHub
page. page.
In order for Vebugger to use a debugger, that debugger must be installed and In order for Vebugger to use a debugger, that debugger must be installed and
it's executable must be in the PATH. In case of RDebug and PDB, which are used it's executable must either be in the PATH or set with a global variable (see
from the Ruby and Python modules, the interpreter("ruby" or "python") is the |vebugger-configuration|). In case of RDebug and PDB, which are used from the
one that must be installed and in the path. Ruby and Python modules, the interpreter("ruby" or "python") is the one that
must be installed and in the path.
CONFIGURATION *vebugger-configuration* CONFIGURATION *vebugger-configuration*
@ -72,6 +73,18 @@ Example: >
let g:vebugger_leader='<Leader>d' let g:vebugger_leader='<Leader>d'
< <
If a debugger is not in the PATH you can set the direct path to it by setting
g:vebugger_path_XXX, where XXX is the executable used for the debugger:
*g:vebugger_path_gdb* defaults to "gdb"
*g:vebugger_path_jdb* defaults to "jdb"
*g:vebugger_path_mdbg* defaults to "Mdbg.exe"
*g:vebugger_path_python* defaults to "python"
*g:vebugger_path_ruby* defaults to "ruby"
Notice that for PDB and RDebug you use "python" and "ruby", since the debugger
is actually a module bundled in the interpreter.
LAUNCHING DEBUGGERS *vebugger-launching* LAUNCHING DEBUGGERS *vebugger-launching*
A debugger's implementation is responsible for starting it. The standard is to A debugger's implementation is responsible for starting it. The standard is to