To: vim_dev@googlegroups.com Subject: Patch 8.0.1713 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ Patch 8.0.1713 Problem: Terminal debugger doesn't handle arguments. Solution: Use and pass all the arguments to gdb, e.g. the core file or process number. (suggested by Christian Brabandt) Disallow starting the debugger twice. Files: runtime/pack/dist/opt/termdebug/plugin/termdebug.vim, runtime/doc/terminal.txt *** ../vim-8.0.1712/runtime/pack/dist/opt/termdebug/plugin/termdebug.vim 2018-04-06 22:26:17.981196807 +0200 --- runtime/pack/dist/opt/termdebug/plugin/termdebug.vim 2018-04-14 18:47:36.861253050 +0200 *************** *** 25,31 **** " The command that starts debugging, e.g. ":Termdebug vim". " To end type "quit" in the gdb window. ! command -nargs=* -complete=file Termdebug call s:StartDebug() " Name of the gdb command, defaults to "gdb". if !exists('termdebugger') --- 25,31 ---- " The command that starts debugging, e.g. ":Termdebug vim". " To end type "quit" in the gdb window. ! command -nargs=* -complete=file Termdebug call s:StartDebug() " Name of the gdb command, defaults to "gdb". if !exists('termdebugger') *************** *** 43,49 **** endif hi default debugBreakpoint term=reverse ctermbg=red guibg=red ! func s:StartDebug(cmd) let s:startwin = win_getid(winnr()) let s:startsigncolumn = &signcolumn --- 43,54 ---- endif hi default debugBreakpoint term=reverse ctermbg=red guibg=red ! func s:StartDebug(...) ! if exists('s:gdbwin') ! echoerr 'Terminal debugger already running' ! return ! endif ! let s:startwin = win_getid(winnr()) let s:startsigncolumn = &signcolumn *************** *** 90,96 **** " Open a terminal window to run the debugger. " Add -quiet to avoid the intro message causing a hit-enter prompt. ! let cmd = [g:termdebugger, '-quiet', '-tty', pty, a:cmd] echomsg 'executing "' . join(cmd) . '"' let s:gdbbuf = term_start(cmd, { \ 'exit_cb': function('s:EndDebug'), --- 95,101 ---- " Open a terminal window to run the debugger. " Add -quiet to avoid the intro message causing a hit-enter prompt. ! let cmd = [g:termdebugger, '-quiet', '-tty', pty] + a:000 echomsg 'executing "' . join(cmd) . '"' let s:gdbbuf = term_start(cmd, { \ 'exit_cb': function('s:EndDebug'), *************** *** 112,118 **** let try_count = 0 while 1 let response = '' ! for lnum in range(1,20) if term_getline(s:gdbbuf, lnum) =~ 'new-ui mi ' let response = term_getline(s:gdbbuf, lnum + 1) if response =~ 'Undefined command' --- 117,123 ---- let try_count = 0 while 1 let response = '' ! for lnum in range(1,200) if term_getline(s:gdbbuf, lnum) =~ 'new-ui mi ' let response = term_getline(s:gdbbuf, lnum + 1) if response =~ 'Undefined command' *************** *** 182,187 **** --- 187,193 ---- func s:EndDebug(job, status) exe 'bwipe! ' . s:ptybuf exe 'bwipe! ' . s:commbuf + unlet s:gdbwin let curwinid = win_getid(winnr()) *************** *** 295,300 **** --- 301,307 ---- delcommand Evaluate delcommand Gdb delcommand Program + delcommand Source delcommand Winbar nunmap K *** ../vim-8.0.1712/runtime/doc/terminal.txt 2018-04-14 18:13:44.375164654 +0200 --- runtime/doc/terminal.txt 2018-04-14 18:57:58.052924516 +0200 *************** *** 649,654 **** --- 649,661 ---- When the debugger ends, typically by typing "quit" in the gdb window, the two opened windows are closed. + Only one debugger can be active at a time. + + To attach gdb to an already running executable, or use a core file, pass extra + arguments. E.g.: > + :Termdebug vim core + :Termdebug vim 98343 + Example session ~ *termdebug-example* *** ../vim-8.0.1712/src/version.c 2018-04-14 18:13:44.379164629 +0200 --- src/version.c 2018-04-14 18:56:43.869440214 +0200 *************** *** 764,765 **** --- 764,767 ---- { /* Add new patch number below this line */ + /**/ + 1713, /**/ -- If Microsoft would build a car... ... You'd have to press the "Start" button to turn the engine off. /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ \\\ an exciting new programming language -- http://www.Zimbu.org /// \\\ help me help AIDS victims -- http://ICCF-Holland.org ///