This is the mail archive of the gdb@sources.redhat.com 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]

Re: DOS/Windows-specific code: maint.c


On May 8,  2:48pm, Eli Zaretskii wrote:

>     * maint.c:
> 
>     #ifndef _WIN32
>     /* ARGSUSED */
>     static void
>     maintenance_dump_me (char *args, int from_tty)
>     {
>       if (query ("Should GDB dump core? "))
> 	{
>     #ifdef __DJGPP__
> 	  /* SIGQUIT by default is ignored, so use SIGABRT instead.  */
> 	  signal (SIGABRT, SIG_DFL);
> 	  kill (getpid (), SIGABRT);
>     #else
> 	  signal (SIGQUIT, SIG_DFL);
> 	  kill (getpid (), SIGQUIT);
>     #endif
> 	}
>     }
>     #endif
> 
> Should we define SIGNAL_TO_DUMP_CORE (default to SIGQUIT)?  It could
> then be set to 0 on Windows, and maintenance_dump_me could print a
> suitable message ("not supported on this platform" or some such) if
> its value is zero.
>
> Btw, why isn't SIGABRT used on Unix here?

I don't know.  SIGABRT seems like a better (more portable) choice.

With that in mind, why not do the following:

    /* ARGSUSED */
    static void
    maintenance_dump_me (char *args, int from_tty)
    {
      if (query ("Should GDB dump core? "))
        {
    #ifdef SIGABRT
          signal (SIGABRT, SIG_DFL);
          kill (getpid (), SIGABRT);
    #else
          error ("Not supported on this platform.");
    #endif
        }
    }

Note that the _WIN32 ifdef has been removed so that
maintenance_dump_me() will always be defined.

If, for some reason, the above won't work, I think your
SIGNAL_TO_DUMP_CORE suggestion is okay too.

Kevin


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