- A dynamic watch variable, for example an STL container, is now displayed using the enabled gdb pretty printers.
- Support gdb background execution.
- Line numbers are included in the backtrace window, except at the top level frame (to avoid screen blinks when stepping). Breakpoint conditions are listed in the breakpoint window.
- Issue #41: Fix the 'define', 'commands' and 'document' gdb commands (regression).
- Issue #42: The 'python' gdb command can also be used now as a multi-line command.
- Issue #43: The 'shell' gdb command is an illegal command as already stated in the documentation.
- Fix the following exception upon starting with python3.6:
in create_server: sock.bind(sa): TypeError: an integer is required (got type str)
. - Issue #46: Fix an exception caused by the incorrect parsing of the output of
the
-thread-info
gdb/mi command. - Issue #47: Loading the list of source file names may be very slow for large
libraries with debugging symbols. Only load the list of source file names
upon running a
file
-like gdb command or when a library is being loaded. Previously, this list was instead loaded onfile
-like andbreak
-like gdb commands. - Issue #48: Fix a vim keymap error when the command prefix has been set to
another value that the default
C
. - Issue #49: The line marker is not missing now after a gdb background
continue&
command. - Issue #50: The breakpoint and backtrace windows always print now the source file basename followed by the absolute pathname in angle brackets.
- Issue #25: Print the return value when the inferior stops after 'finish'.
- Issue #26: Fix Pyclewn failure to start when gdb is configured with
enable-targets=all
. - Issue #27: File name completion is now available before gdb has been started. This fixes a regression introduced in 2.1 by the full gdb completion feature.
- Issue #31: Hitting <CR> in the breakpoints window now splits the first window of the current tab loaded with a non-clewn buffer.
- Issue #39: Prevent pip using wheel to install pyclewn on Python 2.7.
- Full gdb completion is now available on Vim command line. See
:help gdb-completion
. - The console and the Pyclewn buffers are loaded in windows of a dedicated tab
page when the
--window
option is set tousetab
. Seehelp pyclewn-usetab
. - The new command
Cexitclewn
closes the debugging session and removes the Pyclewn buffers and their windows (issue #20). - Two new key mappings are available in the breakpoints window. Use
+
to toggle the breakpoint state between enable/disable, and use<C-K>
to delete the breakpoint. - The new vim.ping() function may be used to check whether an existing Python process may be attached to.
- Many improvements to the handling of the Pyclewn windows (issue #17).
- No windows are created when the
--window
option is set tonone
.
- Issue #6: Fix the crash in Pyclewn versions 2.0 and 2.0.1 when trying to attach to a remote gdb.
- Issue #12: Prevent Pyclewn from running with an obsolete version of its Vim run time files.
- Issue #13: Fix the error messages after
:Pyclewn pdb
failure. - Issue #14: tmux can be used now with the
terminal
option, e.g.--terminal=tmux,split-window
. - Issue #15: The clewn buffers are now emptied after the
Cquit
command. - Issue #18: Create the windows layout upon starting Pyclewn. The windows
layout is still created upon the first command instead, when Pyclewn is
started with
python -m clewn --window=usetab
. - Issue #19: Vim signs are placed now in the window of a buffer loaded before the debugging session instead of using the current window.
- Issue #22: Autoscroll the console when the
--window
option is set tonone
. - Issue #21: A gdb error message is printed now when the
Cdbgvar
command fails.
- The
:Pyclewn
command can now be used reliably in a Vim script. - The watchpoints are also displayed in the breakpoints window.
- The
Cquit
command does not start a new gdb session anymore. - The list buffer windows are now empty after the
Cquit
command. - The source distribution can be built when pdb-clone is missing.
- Three clewn buffers are updated by gdb, they list the breakpoints, the
backtrace and the threads. One can jump with the <CR> key or the mouse to
the corresponding source code line from the
(clewn)_breakpoints
window or switch to the corresponding frame from the(clewn)_backtrace
window, or switch to the correponding thread with the(clewn)_threads
window. TheCcwindow
command has been removed. - All the Vim functions defined by pyclewn that split windows can be overriden.
- A compound watched variable in
(clewn)_variables
can be expanded and collapsed with the <CR> key or the mouse. - The new
Cballooneval
command switches on/off the Vim balloon without interfering with the pyclewn key mappings that rely on the Vim 'ballooneval' option to be functional. - The first optional argument of the
:Pyclewn
Vim command selects the debugger and the following arguments are passed to the debugger. For example, to debugfoobar args
with gdb, run the Vim commmand:Pyclewn gdb --args foobar args
. - The new
g:pyclewn_terminal
Vim global variable allows the pyclewn program started with:Pyclewn
to run in a terminal instead of as a daemon, and helps trouble shooting startup problems.
- Windows support has been removed. Pyclewn runs now on Python 2.7 or Python 3.2 or newer and the same source code is used for all those Python versions. Pyclewn uses now asyncio (or trollius on Python versions that do not support asyncio, i.e. version 2.7 or older than 3.4) instead of the deprecated asyncore Python module.
- The preferred method to install pyclewn is
pip
. The Vim run time files are installed with a vimball. Local installation is done using the Python user scheme instead of the home scheme. pdb-clone is installed separately from PyPI. - The pyclewn program is now started with the command
python -m clewn
followed by the options and an optional argument that selects which debugger to run. - The
(clewn)_console
window is only created at the firstC
command. - Pointers are not dereferenced anymore in the Vim balloon and the
nodereference
keyword of the--gdb
option is now ignored. As a result, gdb Python-based pretty-printers output is displayed in the balloon. CTRL-E
is a standard Vim command, it is replaced withCTRL-K
in pyclewn key mappings for clearing breakpoints. The(clewn)_console
is not any more popped up after hitting a pyclewn mapped key.- The watched variables clewn buffer is now named
(clewn)_variables
and the installed Vim syntax file has been renamed fromdbgvar.vim
toclewn_variables.vim
.
- When pyclewn is started from a terminal, the controlling terminal of the gdb inferior process is now correctly set to the terminal from where pyclewn has been started.
- The terminal spawned by the
inferiortty
command is now automatically closed at the end of each debugging session. - Fix a gdb version parsing error on the non-conformant Cygwin versions of gdb. See the bug report at http://cygwin.com/ml/cygwin/2014-06/msg00211.html.
- Fix the problem that changes made to the plugin global variables after the
first invocation of
:Pyclewn
are ignored. - Pyclewn listens on '127.0.0.1' and each debugger type uses now a different netbeans port number.
- Pyclewn prevents now the spawning of a terminal by
Cinferiortty
also when the inferior is stopped in a shared library. - Fix the problem that when the first command is
Cbreak
, the breakpoint is not highlighted.
- Fix gdb version detection on linux Suse 12.2 and Fedora 19 that print a gdb header not GNU standards compliant.
Use now pdb-clone instead of the standard library Python debugger, pdb.
- With breakpoints, pyclewn runs now just above the speed of the Python interpreter, while the command line Python debugger pdb runs at 10 to 100 times the speed of the interpreter.
- pdb-clone fixes also many pdb long standing bugs.
Add the pdb
commands
command.Add the pdb
inferiortty
command to be used on unix when the python script is started from Vim. The command can be issued at any time during the debugging session.- Without argument,
inferiortty
spawns a terminal connected to a pseudo tty and redirects the script three standard streams to this pseudo tty. - With the name of an existing pseudo tty as an argument,
inferiortty
redirects all three standard streams to this pseudo tty (convenient for re-using the same pseudo tty across multiple debugging sessions).
- Without argument,
- An error message warns now the user when attempting to spawn the terminal
from gdb with the
inferiortty
command and the inferior has been already started (this is too late). - pdb prints now a message to the console when the script has terminated.
- Add file completion to the gdb command
shell
first argument.
- When the Python script is started from Vim with the command
:Pyclewn pdb script.py
, the script is now terminated after thequit
command has been issued. - pdb stops now at a breakpoint set in one of the callers after an interrupt.
- pdb stops now at the next statement in the main module when the
next
command has been issued. - Fix gdb version detection.
- Fix customized key mappings are lost when starting the second gdb session.
- Add the
inferiortty
command. This new command spawns the controlling terminal (default xterm) of the debuggee and sets accordingly gdbinferior-tty
variable and the TERM environment variable.
- Fix pyclewn terminal fails to print the output of the debuggee.
- The
define
,commands
anddocument
gdb commands are implemented. - The new
pdb
test option enables the debugging of a gdb test case from the test suite by pyclewn. Run thepython setup.py --help test
command to see how to proceed to debug a test case with this option.
- Avoid having the cursor hang for one second on the character
n
in Vim command line when pyclewn keys are not mapped. - Gdb/mi log stream messages are now written to the console instead of being ignored. This stream is dedicated to gdb debugging messages, but a bug in gdb (see gdb bug 13170) has some important error and warning messages, that pyclewn should not ignore, written to gdb/mi log stream instead of gdb/mi console output stream.
- Fix the
dbgvar
command crashes pyclewn with Python 2.7.2 and Python 3.2.2. - Fix no breakpoint signs after setting a
throw
catchpoint. - Fix after starting a new gdb session, breakpoint signs may be placed in the wrong files.
- Support of the Python
pdb
debugger on Windows (Python 3 only). - The new
loglevel
command allows to print or set the log level dynamically from inside Vim.
- Fix the
pdb
debugger raises the ignored exceptionAttributeError("'NoneType' object has no attribute 'Pdb'",) in function _removeHandlerRef
with Python 3.2. - Fix an unfolded watched variable of 500 elements causes 100% cpu use when the hiliting of all its elements is updated.
- Fix
inferior_tty.py
uses 100% cpu. - Fix Pyclewn with the Python 2
pdb
debugger raises the exceptionValueError: "lnum" must be strictly positive: 0
when stepping into an empty module.
- On unix, when starting pyclewn from a terminal and using gvim, pyclewn
creates a pseudo terminal that is the the controlling terminal of the
program to debug. Programs debugged by gdb, including those based on curses
and termios such as vim, run in this terminal. A
<Ctl-C>
typed in the terminal interrupts the debuggee. When pyclewn is started from vim with the:Pyclewn
command, there is no terminal associated with pyclewn. Use instead theinferior_tty.py
script installed with pyclewn to get the same functionality. This script creates a pseudo terminal to be used as the controlling terminal of the process debugged by gdb. - The
frame
command updates the frame sign and positions the cursor on this sign. - New
none
LOCATION of the--window
command line option. This option disables the automatic display of the console and may be useful when using Vim tabs and keeping the console in a tab of its own.
- Pyclewn supports Python 3,
pyclewn-1.6.py3.tar.gz
is the Python 3 distribution tarball,pyclewn-1.6.py2.tar.gz
is the Python 2 distribution tarball. - The gdb
whatis
command is used by pyclewn to get the type of the variable or the type of the selected expression that is being hovered over by the mouse. When it is a pointer to data, the pointer is dereferenced and its value displayed in the vim balloon. A new paramater to the--gdb
option namednodereference
disables this feature and switches back to the old behavior of printing the pointer address value.
- Fix a syntax error in
.pyclewn_keys.gdb
causes:Pyclewn
to hang. - Fix some error messages are not printed on stderr.
- Fix gdb warning
Failed to set controlling terminal
. - Handling of the netbeans socket disconnection, closes the gdb session also when gdb is busy.
- Ignore
sigint
orquit
command on startup. - On gdb abnormal termination, save the project file if exists and forcibly terminate the current session.
- Set breakpoint in a template function C++.
- Give an explicit error message after installation failure, for example when
the environment var
EDITOR
is set to something different than vim or empty.
- Support of
pdb
, the python debugger.- A python script may be run under the control of
pdb
. For example the current vim buffer may be started and debugged with the vim command:Pyclewn pdb %:p
- One may also attach to a running python process, interrupt the process, manage a debugging session and terminate the debugging session by detaching from the process. A new debugging session may be conducted later on this same process, possibly from another Vim instance.
- All the
pdb
commands are supported exceptlist
andcommands
. This includes alias expansion and executing a python statement in the context of the current frame. The new commandthreadstack
prints the instantaneous backtrace of all the threads, including those that are stuck in a deadlock.
- A python script may be run under the control of
- Pdb is currently supported on unix platforms and requires the latest Vim version: Vim 7.3. Python3 is not supported yet.
- Logs are written to stderr when the
--level
option is set and the--file
option is not set.
- The new
Ccwindow
command opens a vim quickfix window holding the list of the breakpoints with their current state. The quickfix window allows moving directly to any breakpoint. - Add the
--background
command line option, allowing the setting of the background colors for the bp enabled sign, the bp disabled sign and the frame sign. - Show the last two digits of the gdb breakpoint numbers in the source margin
instead of
bp
.
- The vim
:Pyclewn
command can be used directly without having first to run:runtime pyclewn.vim
as was required previously (Sergey Khorev). Cyan
is the default background color for enabled breakpoint signs, instead ofBlue
previously.
- Fix the highlighting of a watched variable child is not reset when the value of the child object does not change, after stepping for example.
- Fix error messages scramble vim (not gvim) display.
- Fix when folding a watched variable and hitting continue, pyclewn raises
the exception
invalid token
after producing the error messageall cmds have not been processed in results
. - Fix cannot fold a watched variable with gdb 7.1.
- Fix the
:Pyclewn
command does not work on Windows.
- A new command named
setfmtvar
may be used to set the output format of a watched variable or one of its children, for example tohexadecimal
orbinary
.
- Fix handling gdb ASYNC-RECORDs in gdb 7.2 when obtaining the set of available gdb commands and their completion.
- Fix pyclewn help is not available from within Vim, after installation on RedHat 6.
- The test suite fails with Python 2.7. The
test
package is meant for Python core developers only, so do not use it anymore and implement our own. - Workaround to a RuntimeError Python bug when installing pyclewn with Python 2.7 (Matt McCormick).
- Fix incorrect output in console after the first netbeans session. The
:Pyclewn
command wipes out now both console and dbgvar buffers when they exist, before starting netbeans.
- Pyclewn may be started from within Vim with the
:Pyclewn
Vim command after thepyclewn.vim
script has been run. This requires that Vim allows starting netbeans with the:nbstart
Vim command. The implementation ofnbstart
is available as a Mercurial Queue patch.
- Extend the set of available key modifiers in key mappings, to all the key modifiers supported by Vim netbeans (Sergey Khorev).
- Allow commands in the initial buffer and on buffers loaded from the command line. This feature is enabled when the running Vim version is above 7.2.334 (Vim 7.2 with patch 334).
- Fix the display of the gdb console window and the dbgvar window, after the gdb 'quit' command has been entered.
- Support Vim running in a terminal. This requires netbeans support in Vim
when running in a terminal. The implementation of netbeans in
plain vim
(vim running in a terminal), is available as a Mercurial Queues patch for the official Vim release and for the latest development source tree.
- The console vim buffer and the watched variables buffer are set with 'noswapfile' option.
- Split the current Vim window and display the variables window after running
the
Cdbgvar
command. This feature is enabled when the running Vim version is above 7.2.253 (Vim 7.2 with patch 253).
- Clean up the python debugger interface and use pydoc to document it.
- Replace the existing
timer
method with a flexible job scheduling. - Replace the
vimcmd
environment variable with theEDITOR
environment variable. - Improve select emulation performance on linux by a factor of 2.
- Minimize Vim screen redraws when updating the debugger console window.
- The pyclewn sourceforge web site is now created with sphinx using reStructuredText markup.
- Switch from Subversion to Mercurial as pyclewn SCM (Source Code Management).
- Recent Fedora Core distributions are missing the Python standard library
test.regrtest
module. Warn that the regression test suite cannot be run on these platforms and continue the installation. - Fix quoted command line arguments are not properly parsed.
- Fix content of gdbmi results within quotes must be unquoted.
- Fix crash when running without a console after starting from the menu of a X11 window manager.
- Fix watched array elements are displayed in lexicographical order instead of numeric order.
- Fix gdb 7.0 causes exception on break.
- Fix regression test suite hangs on futex.
- Pyclewn falls back to pipes when a pseudo tty cannot be setup with gdb.
- On Vim 7.2 and later Vim versions, the first pyclewn command on the initial
[NoName]
buffer is ignored and an error message is printed. Also, when the command is issued on a buffer loaded from Vim command line, the user is informed that the buffer is being registered to netbeans. - On pyclewn installation,
gvim
can be replaced with the value of the environment variablevimcmd
, for the pathname of the program to be run when checking that thenetbeans_intg
feature has been compiled in Vim.
- Fix cannot run two simultaneous pyclewn sessions on the same listening port.
- Fix
Csigint
help and warning message when running with pipes instead of a pseudo tty. - Fix incorrect display after the Vim command bdelete or bwipeout on the clewn console.
- Fix
Quit
is printed on the gdb console after the output of the next command.
- Pyclewn runs on the Windows platform.
- Fix setting or clearing a breakpoint with clewn mapped keys when the breakpoint file pathname includes spaces.
- Fix an assertion error that occured on exit while pyclewn is busy processing gdb messages. A side effect of this fix is that the project file is not saved automatically on exit, if gdb is busy running a command at this time.
- The new
maxlines
option sets a limit on the console buffer size. - The new
window
option positions the console window on top, bottom, left or right side of the Vim window. - The new
project
pyclewn command saves the current gdb settings to a project file that may be sourced later with the gdbsource
command. These settings are the working directory, the debuggee program file name, the program arguments and the breakpoints. - A new parameter to the
gdb
command line option can be used to set the project file pathname. When set, the project file is automatically sourced on starting a gdb session, and the gdb settings are automatically saved to the project file on quitting gdb or vim.
- The vim implementation of the netbeans "remove" function is buggy, and has
been fixed by patch 207 in vim 7.1. The workaround in pyclewn is to insert a
\n
before the line to delete, and to delete both lines in one shot. This workaround is not used when vim implements patch 207. - Allow a gdb command on the initial [No name] vim window.
- Pyclewn can be started now without setting the environment variable
PYTHONPATH which was required in the previous release when pyclewn is
installed locally with the
home scheme
.
- Avoid having Vim segfaults when stepping very fast with gdb, by the correct handling of the cursor position when restoring the cursor after an update of the gdb console.
- Remove the gdb tui commands.
- The
help
command must list the pyclewn commands with the gdb commands only when used with no argument. - Fix incorrect breakpoint highlighting after user aborts on the dialog warning him that the buffer is already opened by another Vim session.
- Pyclewn exits with
gdb CRITICAL this is not a gdb program
when gdb writes an unexpected terminfo sequence on a subprocess pipe.
Initial release.