This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [PATCH v2 02/13] script language API for GDB: extension.[ch]
- From: Tom Tromey <tromey at redhat dot com>
- To: ludo at gnu dot org (Ludovic CourtÃs)
- Cc: gdb-patches at sourceware dot org, guile-user at gnu dot org
- Date: Mon, 06 Jan 2014 14:53:47 -0700
- Subject: Re: [PATCH v2 02/13] script language API for GDB: extension.[ch]
- Authentication-results: sourceware.org; auth=none
- References: <52a7f3e8 dot e7ed440a dot 1c58 dot 020f at mx dot google dot com> <87vbyffcwu dot fsf at fleche dot redhat dot com> <CAP9bCMQx_pDKsRTDv5h62kqO4==MTJ80XsZ2RYfpzsjDT1u68g at mail dot gmail dot com> <87txdklqk4 dot fsf at gnu dot org>
>>>>> "Ludovic" == Ludovic CourtÃs <ludo@gnu.org> writes:
Ludovic> Iâm not sure I understand the problem.
Ludovic> What are extension languages typically expected to do when the âquitâ
Ludovic> flag is set?
The basic idea is that if some extension code is running, then C-c ought
to interrupt that code in the way expected by programmers writing code
in that language.
Python provides a kind of low-level API to its equivalent of Guile's
SCM_TICK and async stuff. So the approach we took in gdb was to unify
gdb's implementation with Python's, when Python is enabled. This
ensures that a SIGINT delivery is handled a single time -- by Python if
Python code is running, and by gdb if gdb code is running.
One approach for multiple extension languages might be to notice when
switching languages and move the bit. However I didn't see any way to
do this in the Guile API. In Python it can be accomplished with
PyErr_SetInterrupt and PyOS_InterruptOccurred.
Tom