# HG changeset patch # User Christian Brabandt # Date 1520798408 -3600 # Node ID a7a88403ccb10d4ba0878f366fb604f0680ddac6 # Parent ab94650bc5cab6859d03ae970b6ff5c11baa59ad patch 8.0.1599: no error message when gdb does not support debugger commit https://github.com/vim/vim/commit/3e4b84d0b55936ac017d20df6651ddd05e38f58f Author: Bram Moolenaar Date: Sun Mar 11 20:51:52 2018 +0100 patch 8.0.1599: no error message when gdb does not support debugger Problem: No error message when gdb does not support the terminal debugger. Solution: Check for the response to open the Machine Interface. diff --git a/runtime/pack/dist/opt/termdebug/plugin/termdebug.vim b/runtime/pack/dist/opt/termdebug/plugin/termdebug.vim --- a/runtime/pack/dist/opt/termdebug/plugin/termdebug.vim +++ b/runtime/pack/dist/opt/termdebug/plugin/termdebug.vim @@ -105,9 +105,39 @@ func s:StartDebug(cmd) let s:gdbwin = win_getid(winnr()) " Connect gdb to the communication pty, using the GDB/MI interface - " If you get an error "undefined command" your GDB is too old. call term_sendkeys(s:gdbbuf, 'new-ui mi ' . commpty . "\r") + " Wait for the response to show up, users may not notice the error and wonder + " why the debugger doesn't work. + 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' + echoerr 'Your gdb does not support the Machine Interface feature' + exe 'bwipe! ' . s:ptybuf + exe 'bwipe! ' . s:commbuf + return + endif + if response =~ 'New UI allocated' + " Success! + break + endif + endif + endfor + if response =~ 'New UI allocated' + break + endif + let try_count += 1 + if try_count > 100 + echoerr 'Cannot check if your gdb works, continuing anyway' + break + endif + sleep 10m + endwhile + " Interpret commands while the target is running. This should usualy only be " exec-interrupt, since many commands don't work properly while the target is " running. diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -767,6 +767,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 1599, +/**/ 1598, /**/ 1597,