This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: python-interactive, and quitting gdb pagination


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]