From: Lerele <lerele@champenstudios.com>
To: Pedro Alves <pedro_alves@portugalmail.pt>
Cc: Eli Zaretskii <eliz@gnu.org>, gdb-patches@sourceware.org
Subject: Re: [Patch] Win32 gdbserver new interrupt support, and attach to process fix.
Date: Sat, 24 Feb 2007 23:35:00 -0000 [thread overview]
Message-ID: <45E0CA5A.1020005@champenstudios.com> (raw)
In-Reply-To: <45E0AB9E.9060107@portugalmail.pt>
Pedro Alves wrote:
>
> Lerele wrote:
>
>> }
>> -#endif
>> +
>> +/* Expose 'static void input_interrupt (int unused)' function to
>> enable checking for a + remote interrupt request. */
>
>
> Is the 'Expose 'static void input_interrupt (int unused)' function'
> part really necessary?
>
You mean the comment?
The function?
Or even having to call that function at all to be able to interrupt?
I added a comment just to state that it's a wrapper for that other (with
a not so significant function name, given its purpose for win32).
I added the function:
1) Not to change static attribute input_interrupt has (I am of the kind
that I prefer not touch stuff if it's not necessary --less possibility
for new bugs I think).
2) To give it a rather more significant name (given the context in which
it is called now), and not expose it as 'input_interrupt'.
Having to call that function is necessary to check if client gdb asked
gdbserver to stop child process.
Also, can't use async IO signals on win32 the way it's done on
gdbserver, so I just directly "exposed" that function.
>> +void
>> +check_remote_input_interrupt_request (void)
>> +{
>> + input_interrupt(0);
>> +}
>>
>
>
>
>>
>> +
>> + It should be safe to continue child given this wait status.
>> + See function get_child_debug_event. Default wait status is
>> spurious,
>> + and it gets modified if any important debug events get received.
>> + More specifically, this status gets returned in the wait loop
>> to + allow socket pooling/resuming, to allow for remote
>> interruption. */
>>
>
>
> Full stop, double space. "...get_child_debug_event. Default ..."
>
Please clarify.
>> TARGET_WAITKIND_SPURIOUS,
>> };
>>
>> @@ -574,7 +584,7 @@
>>
>> FreeLibrary (kernel32);
>>
>> - return res;
>> + return res? 0:-1;
>>
>
> Space around '?' and ':'. Personally, I liked the res != FALSE ? 0 :
> -1 version better.
>
Honestly, I don't really care too much.
You guys decide.
>> }
>>
>> /* Kill all inferiors. */
>> @@ -840,7 +850,12 @@
>> last_sig = TARGET_SIGNAL_0;
>> ourstatus->kind = TARGET_WAITKIND_SPURIOUS;
>>
>> - if (!(debug_event = WaitForDebugEvent (¤t_event, 1000)))
>> + /* Check for remote interruption request */
>> + check_remote_input_interrupt_request();
>>
>
>
> Missing space: "check_remote_input_interrupt_request ()"
> Full stop double-space: "request. */", although I guess the comment
> adds no value, since the
> function name says pretty much the same.
>
>> +/* Send a signal to the inferior process, however is appropriate. */
>> +static void
>> +win32_send_signal (int signo)
>> +{
>> + if ( signo == TARGET_SIGNAL_INT )
>> + {
>> + if ( !GenerateConsoleCtrlEvent(CTRL_BREAK_EVENT,
>> current_process_id) )
>>
>
> Missing space: "GenerateConsoleCtrlEvent ("
>
> Also, pedantically speaking, both remote_utils.c:putpkt_binary, and
> remote_utils.c:input_interrupt
> (the sole users of _send_signal) send SIGINT, not TARGET_SIGNAL_INT.
> Luckily on
> Windows, both are defined as 2.
>
> I have a local patch that does:
>
> /* Send a signal to the inferior process, however is appropriate. */
> - void (*send_signal) (int);
> + void (*send_signal) (enum target_signal);
>
> ... and takes care of the conversion of the target side. I'll post it
> for review. In the meantime, you may
> want to change your patch to use SIGINT.
>
You mean line gdb/signals/signal.c 'target_signal_from_host' and
'do_target_signal_to_host' functions?
I'm not really sure if we should use SIGINT in win32-i386-low.c, given
that it should only know about target signals.
> Thanks for such a needed feature.
>
Thanks to you.
Nice to see it gets used.
I surely find it useful. It's just great to cross develop on Linux to
just use Windows as a target. 8-)
However, I don't know if people out there are using it, otherwise I
guess the attach bug should have been listed.
It isn't that strange to use the attach feature, is it? Well, I don't
use it really. hmmm.
Been taking a look ocasionally at gdb buglist, but didn't see any related.
Regards,
Leo.
next prev parent reply other threads:[~2007-02-24 23:35 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-02-23 23:52 Lerele
2007-02-24 12:07 ` Eli Zaretskii
2007-02-24 13:03 ` Lerele
2007-02-24 14:07 ` Eli Zaretskii
2007-02-24 15:23 ` Lerele
2007-02-24 19:10 ` Eli Zaretskii
2007-02-24 21:19 ` Pedro Alves
2007-02-24 21:44 ` Andreas Schwab
2007-02-24 23:35 ` Lerele [this message]
2007-02-25 0:15 ` Daniel Jacobowitz
2007-02-25 1:57 ` Pedro Alves
2007-02-25 22:46 ` Pedro Alves
2007-03-04 22:53 ` Lerele
2007-03-05 0:56 ` Pedro Alves
2007-03-05 1:21 ` Pedro Alves
2007-03-05 13:17 ` Lerele
2007-03-05 20:34 ` Lerele
2007-03-05 20:44 ` Pedro Alves
2007-03-06 0:04 ` Pedro Alves
2007-03-06 20:39 ` Pedro Alves
2007-03-06 22:18 ` Lerele
2007-03-06 23:22 ` Pedro Alves
2007-03-05 12:44 ` Daniel Jacobowitz
2007-03-05 20:30 ` Lerele
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=45E0CA5A.1020005@champenstudios.com \
--to=lerele@champenstudios.com \
--cc=eliz@gnu.org \
--cc=gdb-patches@sourceware.org \
--cc=pedro_alves@portugalmail.pt \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox