diff options
author | Bram Moolenaar <Bram@vim.org> | 2017-08-27 16:52:01 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2017-08-27 16:52:01 +0200 |
commit | c572da5f67aa5cdbbc127fc6f1d0a42e38468325 (patch) | |
tree | 1347a54e045c649ba30f869303ea055a596ee3d6 /runtime/pack/dist/opt/termdebug/plugin/termdebug.vim | |
parent | 7adf06f4e25c795ba32ff0b2e8591330f6a41afb (diff) |
Update runtime files
Diffstat (limited to 'runtime/pack/dist/opt/termdebug/plugin/termdebug.vim')
-rw-r--r-- | runtime/pack/dist/opt/termdebug/plugin/termdebug.vim | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/runtime/pack/dist/opt/termdebug/plugin/termdebug.vim b/runtime/pack/dist/opt/termdebug/plugin/termdebug.vim new file mode 100644 index 0000000000..97fadf695a --- /dev/null +++ b/runtime/pack/dist/opt/termdebug/plugin/termdebug.vim @@ -0,0 +1,35 @@ +" Debugger commands. +" +" WORK IN PROGRESS - much doesn't work yet +" +" Open two terminal windows: +" 1. run a pty, as with ":term NONE" +" 2. run gdb, passing the pty +" The current window is used to edit source code and follows gdb. +" +" Author: Bram Moolenaar +" Copyright: Vim license applies + +command -nargs=* -complete=file Termdebug call s:StartDebug(<q-args>) + +if !exists('debugger') + let debugger = 'gdb' +endif + +func s:StartDebug(cmd) + " Open a terminal window without a job, to run the debugged program + let s:ptybuf = term_start('NONE', {}) + let pty = job_info(term_getjob(s:ptybuf))['tty'] + + " Open a terminal window to run the debugger. + let cmd = [g:debugger, '-tty', pty, a:cmd] + echomsg 'executing "' . join(cmd) . '"' + let gdbbuf = term_start(cmd, { + \ 'exit_cb': function('s:EndDebug'), + \ 'term_finish': 'close' + \ }) +endfunc + +func s:EndDebug(job, status) + exe 'bwipe! ' . s:ptybuf +endfunc |