Use this page to discuss script 4582 Conque GDB: GDB command line interface and terminal emulator
- Add constructive comments, bug reports, or discuss improvements (see the guideline).
- Do not document the script here (the author should do that on vim.org).
- This page may be out of date: check the script's vim.org page above, and its release notes.
Will no longer work with GDB 8.2[]
With the introduction of multi-line commands, Conque GDB does no longer work on my system. There simply is no output on gvim and only the welcome message in vim, after I press some key.
The GDB commit which introduced the problem: 56bcdbea2bed27ea83bf0e4fe472ab744b4beaa1
Let gdb.execute handle multi-line commands
Unfortunately there is no relate debug output from the plugin.
DeprecationWarning when using Python 3.7[]
When vim is launched, the following warning shows up:
Error detected while processing function conque_gdb#load_python: line 6: -c:39: DeprecationWarning: Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated, and in 3.8 it will stop working Press ENTER or type command to continue
This is fixed with the following patch:
diff --git a/autoload/conque_gdb/conque_gdb.py b/autoload/conque_gdb/conque_gdb.py index c54e3c8..c2d2c98 100644 --- a/autoload/conque_gdb/conque_gdb.py +++ b/autoload/conque_gdb/conque_gdb.py @@ -1,4 +1,4 @@ -import re, collections +import re, collections, collections.abc # Marks that a breakpoint has been hit GDB_BREAK_MARK = '\x1a\x1a' @@ -36,7 +36,7 @@ class RegisteredBreakpoint: def __str__(self): return self.filename + ':' + self.lineno + ',' + self.enabled -class RegisteredBpDict(collections.MutableMapping): +class RegisteredBpDict(collections.abc.MutableMapping): def __init__(self): self.r_breaks = dict() self.lookups = dict()
Problem[]
Vim compiled with static python support + python included in gdb.
When running this command inside Vim: ConqueGdb test
- new window is created
- this is launched:
gdb -f -x /home/user/.vim/bundle/Conque-GDB/autoload/conque_gdb/conque_gdb_gdb.py -x /home/user/.vim/bundle/Conque-GDB/autoload/conque_gdb/gdbinit_confirm.gdb test - 1 [FORMAT=unix] [TYPE=] [100%][POS=0:0/1]
- nothing in window pop ups (window is empty). --May 12, 2014
I wonder if the ConqueGdb is support for vim8.0, as I see the list is all for vim7.3? But my vim is update to 8.0? --Jan 14,2018
Installation problem[]
Conque GDB does not support installation through Vim bundle.
Download the latest conque_gdb.vmb file and install using the installation instructions given at the scripts page in the link at the top. --May 17, 2014
not bundle installation I did as you said. I've deleted ~/.vim/bundle/Conque-GDB* and installed from conque_gdb.vmb.
When I run Vim I get following:
Error detected while processing function conque_gdb#load_python..<SNR>27_get_gdb_command..<SNR>27_get_unix_gdb: line 10: E484: Cannot open file /tmp/vosS3EQ/0
In Vim when I type :ConqueGdb
I get the same result as described in "Problem".
I can get rid of this message when I change escaping to:
conque_gdb.vim:315 let l:gdb_py_support = system(l:gdb_exe . ' -q -batch -ex ''python print("PYYES")'' ')
--May 19, 2014
Question Can you give me the output of "gdb -v" and output of "vim --version"? What happens if you install conque gdb and no other plugins, e.g. with an empty .vim folder?
Answer Empting ~/.vim folder helped. While I still get this message
Error detected while processing function conque_gdb#load_python..<SNR>13_get_gdb_command..<SNR>13_get_unix_gdb:
when starting vim I get a gdb console in separate window when I type :ConqueGdb. --August 28, 2014
Suggestion What if you add the following line in your .vimrc ?
set shell=/bin/sh
Problem when running mvim[]
macVim provides python support. Python installed from port When running mvim -v main.cpp :
- new window is created
- this is launched:
File "<string>", line 1, in <module>File "/Users/UserName/.vim/autoload/conque_term/conque_subprocess.py", line 48, in <module>import pty File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/pty.py", line 9, in <module> from select import select ImportError: dlopen(/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/select.so, 2): Symbol not found: __PyInt_AsInt Referenced from: /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/select.so Expected in: flat namespace in /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload/select.so Press ENTER or type command to continue
then the command :ConqueGdb is recognized but nothing happens. --April 21, 2015
Patch for handling spaces in name of .vim directory[]
I have my ~.vim directory linked to a folder in my Dropbox. When I got a business Dropbox account, the name of my personal Dropbox folder changed from ~/Dropbox to "~/Dropbox (Personal)". This broke ConqueGDB and ConqueTerm. I found if I quoted the spaces in a couple of places that I would no longer have this brokenness.
Here is a patch against version 0.15:
diff -Naur conquegdb/autoload/conque_gdb.vim conquegdb-new/autoload/conque_gdb.vim --- conquegdb/autoload/conque_gdb.vim 2016-04-26 07:15:38.000000000 -0700 +++ conquegdb-new/autoload/conque_gdb.vim 2016-04-26 07:13:46.000000000 -0700 @@ -11,7 +11,7 @@ let g:autoload_conque_gdb_loaded = 1 " Path to gdb python scripts -let s:SCRIPT_DIR = expand("<sfile>:h") . '/conque_gdb/' +let s:SCRIPT_DIR = substitute(expand("<sfile>:h") . '/conque_gdb/', ' ', '\\ ', 'g') " Conque term terminal object let s:gdb = {'idx': 1, 'active': 0, 'buffer_number': -1} diff -Naur conquegdb/autoload/conque_term.vim conquegdb-new/autoload/conque_term.vim --- conquegdb/autoload/conque_term.vim 2016-04-26 07:15:38.000000000 -0700 +++ conquegdb-new/autoload/conque_term.vim 2016-04-26 07:14:23.000000000 -0700 @@ -47,7 +47,7 @@ " path to conque install directories let s:scriptdir = expand("<sfile>:h") . '/' -let s:scriptdirpy = expand("<sfile>:h") . '/conque_term/' +let s:scriptdirpy = substitute(expand("<sfile>:h") . '/conque_term/', ' ', '\\ ', 'g') " global list of terminal instances let s:term_obj = {'idx': 1, 'var': '', 'is_buffer': 1, 'active': 1, 'buffer_name': '', 'buffer_number' : -1, 'command': ''}