Patch 8.0.1599
Problem:    No error message when gdb does not support the terminal debugger.
Solution:   Check for the response to open the Machine Interface.
Files:      runtime/pack/dist/opt/termdebug/plugin/termdebug.vim


*** ../vim-8.0.1598/runtime/pack/dist/opt/termdebug/plugin/termdebug.vim        
2018-03-03 20:46:28.755725320 +0100
--- runtime/pack/dist/opt/termdebug/plugin/termdebug.vim        2018-03-11 
20:47:56.295727423 +0100
***************
*** 105,113 ****
    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")
  
    " 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.
--- 105,143 ----
    let s:gdbwin = win_getid(winnr())
  
    " Connect gdb to the communication pty, using the GDB/MI interface
    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.
*** ../vim-8.0.1598/src/version.c       2018-03-11 19:30:40.132142717 +0100
--- src/version.c       2018-03-11 20:49:05.767296356 +0100
***************
*** 768,769 ****
--- 768,771 ----
  {   /* Add new patch number below this line */
+ /**/
+     1599,
  /**/

-- 
I think that you'll agree that engineers are very effective in their social
interactions.  It's the "normal" people who are nuts.
                                (Scott Adams - The Dilbert principle)

 /// Bram Moolenaar -- b...@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    ///

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to vim_dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Raspunde prin e-mail lui