[Patch] Win32 gdbserver new interrupt support, and attach to process fix.
Pedro Alves
pedro_alves@portugalmail.pt
Sun Feb 25 01:57:00 GMT 2007
Lerele escreveu:
> 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?
Yep. Sorry I wasn't clear.
>> Full stop, double space. "...get_child_debug_event. Default ..."
>>
> Please clarify.
>
The GNU coding convention states that you use a full stop followed by
two spaces to end a sentence.
>>> - 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.
>
I don't care much either, but I think the spaces around '?' and ':'
are mandatory.
+ return res ? 0 : -1;
>>
>>> +/* 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) )
>>>
>>
>> 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.
>
The only send_signal calls I could find, are in remote_utils like so:
(*the_target->send_signal) (SIGINT);
So, *pedantically*, it should be:
+static void
+win32_send_signal (int signo)
+{
+ if (signo == SIGINT)
And I agree that it doesn't look right. With my patch
installed, it turns to:
+static void
+win32_send_signal (enum target_signal signo)
+{
+ if (signo == TARGET_SIGNAL_INT)
Anyway, don't let this bother you. If it gets OKed as is,
I'll take care of it later.
Cheers,
Pedro Alves
More information about the Gdb-patches
mailing list