This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: python-interactive, and quitting gdb pagination
- From: Khoo Yit Phang <khooyp at cs dot umd dot edu>
- To: Pedro Alves <palves at redhat dot com>
- Cc: Khoo Yit Phang <khooyp at cs dot umd dot edu>, GDB Patches <gdb-patches at sourceware dot org>
- Date: Thu, 23 Aug 2012 13:31:43 -0400
- Subject: Re: python-interactive, and quitting gdb pagination
- References: <5036634E.6060202@redhat.com>
Hi,
On Aug 23, 2012, at 1:07 PM, Pedro Alves wrote:
> FYI, I just tried playing with this a little, and stumbled on:
>
> (gdb) python-interactive
>>>> help (gdb)
> Help on package gdb:
> ...
> ...
> ...
> TypeIterator
> Value
> exceptions.Exception(exceptions.BaseException)
> GdbError
> ---Type <return> to continue, or q <return> to quit---q
> Traceback (most recent call last):
> File "<stdin>", line 1, in <module>
> File "/usr/lib64/python2.7/site.py", line 471, in __call__
> return pydoc.help(*args, **kwds)
> File "/usr/lib64/python2.7/pydoc.py", line 1744, in __call__
> self.help(request)
> File "/usr/lib64/python2.7/pydoc.py", line 1791, in help
> else: doc(request, 'Help on %s:')
> File "/usr/lib64/python2.7/pydoc.py", line 1528, in doc
> pager(render_doc(thing, title, forceload))
> File "/usr/lib64/python2.7/pydoc.py", line 1432, in plainpager
> sys.stdout.write(plain(text))
> File "<string>", line 13, in write
> KeyboardInterrupt: Quit
>
> That traceback surprised me, but maybe it's expected.
Hmm, this happens because quitting from GDB's pager happens to raise the same error reason, RETURN_QUIT, as typing Ctrl-C, i.e., quitting from the pager looks exactly like Ctrl-C. I'm not quite sure what the best way to fix this is; perhaps disable the pager while in Python? Python's "help" runs a pager too, but I think it's disabled because stdin/stdout is redirected through GDB. Or alternatively, perhaps somehow differentiate quitting from the pager or quitting from Ctrl-C, e.g., with a different error.message?
Yit
August 23, 2012