[PATCH weston] Added general signal handling and added sig_abrt

Pekka Paalanen ppaalanen at gmail.com
Wed Mar 27 07:22:54 PDT 2013


On Wed, 27 Mar 2013 16:20:27 +0200
Pekka Paalanen <ppaalanen at gmail.com> wrote:

> Hi,
> 
> this looks mostly fine, few comments below, and we want a v2 after
> those.
> 
> Oh, could you put your real name in the sender field, so we get it in
> the git history properly?
> 
> On Wed, 27 Mar 2013 14:59:28 +0100
> blackwolf12333 <blackwolf12333 at gmail.com> wrote:
> 
> > ---
> >  src/compositor.c | 58 +++++++++++++++++++++++++++++++++++++++++++++++++-------
> >  1 file changed, 51 insertions(+), 7 deletions(-)
> > 
> > diff --git a/src/compositor.c b/src/compositor.c
> > index a2860fd..92e9cbe 100644
> > --- a/src/compositor.c
> > +++ b/src/compositor.c
> > @@ -3220,7 +3220,7 @@ print_backtrace(void)
> >  
> >  #endif
> >  
> > -static void
> > +/*static void // we should not need them anymore
> >  on_segv_signal(int s, siginfo_t *siginfo, void *context)
> >  {
> >  	/* This SIGSEGV handler will do a best-effort backtrace, and
> > @@ -3229,7 +3229,7 @@ on_segv_signal(int s, siginfo_t *siginfo, void *context)
> >  	 * raise SIGTRAP.  If we run weston under gdb from X or a
> >  	 * different vt, and tell gdb "handle SIGSEGV nostop", this
> >  	 * will allow weston to switch back to gdb on crash and then
> > -	 * gdb will catch the crash with SIGTRAP. */
> > +	 * gdb will catch the crash with SIGTRAP. 
> >  
> >  	weston_log("caught segv\n");
> >  
> > @@ -3240,6 +3240,40 @@ on_segv_signal(int s, siginfo_t *siginfo, void *context)
> >  	raise(SIGTRAP);
> >  }
> >  
> > +static void
> > +on_abrt_signal(int s, siginfo_t *siginfo, void *context)
> > +{
> > +	/* This SIGABRT handler will do a best-effort backtrace, and
> > +	 * then call the backend restore function, which will switch
> > +	 * back to the vt we launched from or ungrab X etc and then
> > +	 * raise SIGTRAP.  If we run weston under gdb from X or a
> > +	 * different vt, and tell gdb "handle SIGABRT nostop", this
> > +	 * will allow weston to switch back to gdb on crash and then
> > +	 * gdb will catch the crash with SIGTRAP. 
> > +	
> > +	weston_log("caught abrt\n");
> > +	
> > +	print_backtrace();
> > +	
> > +	segv_compositor->restore(segv_compositor);
> > +
> > +	raise(SIGTRAP);
> > +}*/
> 
> Just delete all the dead code, there no point in keeping it.

Ah, just like giucam mentioned in irc, you should preserve the comment
on what this is and how to use it with gdb.


Thanks,
pq


More information about the wayland-devel mailing list