Subject: bug#12251: 24.2.50; crash in note_mouse_highlight

From: Eli Zaretskii <[email-masked]>
Date: Tue, 21 Aug 2012 22:22:34 +0300

> From: Sam Steingold <[email-masked]>
> Cc: [email-masked]
> Date: Tue, 21 Aug 2012 15:02:51 -0400
> 
> > * Eli Zaretskii <[email-masked]> [2012-08-21 21:42:14 +0300]:
> >
> >> #8  0x00000000004f5da5 in cmd_error_internal (data=68832822, context=0x7fffffffcf30 "")
> >>     at /home/sds/src/emacs/trunk/src/keyboard.c:1147
> >> #9 0x00000000004f5f23 in cmd_error (data=68832822) at
> >> /home/sds/src/emacs/trunk/src/keyboard.c:1080
> >
> > what error are we trying to process here?  What is 'data' in frame #8?
> 
> how do I figure that out?

 (gdb) frame 8
 (gdb) p data
 (gdb) xtype

Then use the appropriate "x" command according to the type shown by
"xtype".  E.g., if "xtype" says 'data' is a symbol, use "xsymbol" to
show what symbol is that; if it says it's a string, use "xstring",
etc.

> $ gdb -x ~/src/emacs/trunk/build/src/.gdbinit ~/src/emacs/trunk/build/src/emacs core.7393 
> GNU gdb (Ubuntu/Linaro 7.4-2012.04-0ubuntu2) 7.4-2012.04
> Reading symbols from /home/sds/src/emacs/trunk/build/src/emacs...done.
> [New LWP 7397]
> [New LWP 7396]
> [New LWP 7393]
> [Thread debugging using libthread_db enabled]
> Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
> Core was generated by `emacs'.
> Program terminated with signal 11, Segmentation fault.
> #0  0x00007ffff3eb5b03 in poll () from /lib/x86_64-linux-gnu/libc.so.6
> Warning: /home/sds/../lwlib: No such file or directory.
> SIGINT is used by the debugger.
> Are you sure you want to change it? (y or n) [answered Y; input not from terminal]
> DISPLAY = :0
> TERM = screen
> Breakpoint 1 at 0x4f0aa0: abort. (2 locations)
> Temporary breakpoint 2 at 0x50c7a0: file /home/sds/src/emacs/trunk/src/sysdep.c, line 849.
> (gdb) f 8
> #0  0x0000000000000000 in ?? ()
> (gdb) whee
> Undefined command: "whee".  Try "help".
> (gdb) where
> #0  0x00007ffff3eb5b03 in poll () from /lib/x86_64-linux-gnu/libc.so.6
> #1  0x00007ffff4962036 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
> #2  0x00007ffff496249a in g_main_loop_run () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
> #3  0x00007ffff4f27406 in ?? () from /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
> #4  0x00007ffff49839e5 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
> #5  0x00007ffff5736e9a in start_thread () from /lib/x86_64-linux-gnu/libpthread.so.0
> #6  0x00007ffff3ec14bd in clone () from /lib/x86_64-linux-gnu/libc.so.6
> #7  0x0000000000000000 in ?? ()
> (gdb) 

Wrong thread, I think.  Try other threads ("thread N" will switch to
thread number N, "info threads" will show all of them).  You want the
thread whose frame #0 is on line 27710 of xdisp.c, as you reported in
the original bug report.