Subject: bug#9723: 24.0.50; Emacs Clipboard crash

From: Joseph Jones <[email-masked]>
Date: Fri, 28 Oct 2011 13:55:02 -0700

#0  w32_abort () at w32fns.c:7182
7182    in w32fns.c
(gdb) xbytestack
No symbol "stack" in current context.
(gdb)

What you have there doesn't seem to work.

Here is the back trace for the crashed thread:

(gdb) bt
#0  w32_abort () at w32fns.c:7182
#1  0x010e19de in exec_byte_code (bytestr=92733073, vector=58379621, maxdepth=12, args_template=54736922, nargs=0, args=0x0)
    at bytecode.c:1834
#2  0x01037d02 in funcall_lambda (fun=58379493, nargs=1, arg_vector=0x343381a) at eval.c:3205
#3  0x010371a3 in Ffuncall (nargs=2, args=0x82d998) at eval.c:3023
#4  0x010362cf in call1 (fn=58379493, arg1=102127238) at eval.c:2743
#5  0x010793b7 in mapcar1 (leni=96, vals=0x0, fn=58379493, seq=102091926) at fns.c:2346
#6  0x0107989f in Fmapc (function=58379493, sequence=102091926) at fns.c:2434
#7  0x01036e0a in Ffuncall (nargs=3, args=0x82db00) at eval.c:2977
#8  0x010df7f2 in exec_byte_code (bytestr=92727889, vector=59869445, maxdepth=24, args_template=54736922, nargs=0, args=0x0)
    at bytecode.c:785
#9  0x01037d02 in funcall_lambda (fun=58379333, nargs=1, arg_vector=0x343381a) at eval.c:3205
#10 0x010371a3 in Ffuncall (nargs=2, args=0x82de10) at eval.c:3023
#11 0x010df7f2 in exec_byte_code (bytestr=59875297, vector=59869701, maxdepth=28, args_template=54736922, nargs=0, args=0x0)
    at bytecode.c:785
#12 0x01037d02 in funcall_lambda (fun=58523781, nargs=3, arg_vector=0x343381a) at eval.c:3205
#13 0x010371a3 in Ffuncall (nargs=4, args=0x82e120) at eval.c:3023
#14 0x010df7f2 in exec_byte_code (bytestr=59872801, vector=59935493, maxdepth=16, args_template=54736922, nargs=0, args=0x0)
    at bytecode.c:785
#15 0x010ded90 in Fbyte_code (bytestr=59872801, vector=59935493, maxdepth=16) at bytecode.c:423
#16 0x01034f92 in eval_sub (form=92753774) at eval.c:2328
#17 0x01032766 in internal_catch (tag=59857306, func=0x103460e <eval_sub>, arg=92753774) at eval.c:1256
#18 0x010e01b0 in exec_byte_code (bytestr=59872929, vector=58523717, maxdepth=8, args_template=54736922, nargs=0, args=0x0)
    at bytecode.c:966
#19 0x010ded90 in Fbyte_code (bytestr=59872929, vector=58523717, maxdepth=8) at bytecode.c:423
#20 0x01034f92 in eval_sub (form=92751982) at eval.c:2328
#21 0x01032c61 in internal_lisp_condition_case (var=54736922, bodyform=92751982, handlers=92753798) at eval.c:1453
#22 0x010e0217 in exec_byte_code (bytestr=59873025, vector=58396613, maxdepth=12, args_template=54736922, nargs=0, args=0x0)
    at bytecode.c:981
#23 0x010ded90 in Fbyte_code (bytestr=59873025, vector=58396613, maxdepth=12) at bytecode.c:423
#24 0x01034f92 in eval_sub (form=92752014) at eval.c:2328
#25 0x01032c61 in internal_lisp_condition_case (var=54736922, bodyform=92752014, handlers=92752254) at eval.c:1453
#26 0x010e0217 in exec_byte_code (bytestr=59873249, vector=59940229, maxdepth=16, args_template=54736922, nargs=0, args=0x0)
    at bytecode.c:981
#27 0x01037d02 in funcall_lambda (fun=58396389, nargs=3, arg_vector=0x343381a) at eval.c:3205
#28 0x010371a3 in Ffuncall (nargs=4, args=0x82ef4c) at eval.c:3023
#29 0x010df7f2 in exec_byte_code (bytestr=92197297, vector=59854853, maxdepth=88, args_template=54736922, nargs=0, args=0x0)
    at bytecode.c:785
#30 0x01037d02 in funcall_lambda (fun=58212901, nargs=6, arg_vector=0x343381a) at eval.c:3205
#31 0x010371a3 in Ffuncall (nargs=7, args=0x82f290) at eval.c:3023
#32 0x010df7f2 in exec_byte_code (bytestr=92545649, vector=92501509, maxdepth=32, args_template=54736922, nargs=0, args=0x0)
    at bytecode.c:785
#33 0x01037d02 in funcall_lambda (fun=58209477, nargs=1, arg_vector=0x343381a) at eval.c:3205
#34 0x010371a3 in Ffuncall (nargs=2, args=0x82f5a0) at eval.c:3023
#35 0x010df7f2 in exec_byte_code (bytestr=92768337, vector=60704677, maxdepth=8, args_template=54736922, nargs=0, args=0x0)
    at bytecode.c:785
#36 0x01037d02 in funcall_lambda (fun=58724037, nargs=0, arg_vector=0x343381a) at eval.c:3205
#37 0x010371a3 in Ffuncall (nargs=1, args=0x82f8d0) at eval.c:3023
#38 0x01036246 in apply1 (fn=55597490, arg=54736922) at eval.c:2710
#39 0x010e259d in Fcall_interactively (function=55597490, record_flag=54736922, keys=54758149) at callint.c:379
#40 0x01036e78 in Ffuncall (nargs=4, args=0x82fb60) at eval.c:2981
#41 0x01036349 in call3 (fn=54857066, arg1=55597490, arg2=54736922, arg3=54736922) at eval.c:2774
#42 0x0101fa4b in Fcommand_execute (cmd=55597490, record_flag=54736922, keys=54736922, special=54736922) at keyboard.c:10280
#43 0x01006535 in command_loop_1 () at keyboard.c:1570
#44 0x01032d43 in internal_condition_case (bfun=0x10055f8 <command_loop_1>, handlers=54794650, hfun=0x1004e17 <cmd_error>)
    at eval.c:1499
#45 0x01005254 in command_loop_2 (ignore=54736922) at keyboard.c:1158
#46 0x01032766 in internal_catch (tag=54792674, func=0x1005230 <command_loop_2>, arg=54736922) at eval.c:1256
#47 0x01005210 in command_loop () at keyboard.c:1137
#48 0x010047ec in recursive_edit_1 () at keyboard.c:757
#49 0x01004b07 in Frecursive_edit () at keyboard.c:821
#50 0x01002834 in main (argc=1, argv=0xb02ef8) at emacs.c:1706

Lisp Backtrace:
0x37acce0 PVEC_COMPILED
"mapc" (0x82db04)
"ido-set-matches-1" (0x82de14)
"ido-make-merged-file-list-1" (0x82e124)
"byte-code" (0x82e370)
"byte-code" (0x82e710)
"byte-code" (0x82ead0)
"ido-make-merged-file-list" (0x82ef50)
"ido-read-internal" (0x82f294)
"ido-file-internal" (0x82f5a4)
"ido-find-file" (0x82f8d4)
"call-interactively" (0x82fb64)
(gdb)

(gdb) t 52
[Switching to thread 52 (Thread 15620.0x2d98)]#0  0x7d61c876 in ?? ()
(gdb) bt
#0  0x7d61c876 in ?? ()
#1  0x77bc084a in putch () from C:\WINDOWS\syswow64\msvcrt.dll
#2  0x00000218 in ?? ()
#3  0x01630144 in child_procs ()
#4  0x00000001 in ?? ()
#5  0x6cbcfee0 in ?? ()
#6  0x77bc0a0d in read () from C:\WINDOWS\syswow64\msvcrt.dll
#7  0x00000004 in ?? ()
#8  0x01630144 in child_procs ()
#9  0x00000001 in ?? ()
#10 0x00000000 in ?? ()

Lisp Backtrace:
0x37acce0 PVEC_COMPILED
"mapc" (0x82db04)
"ido-set-matches-1" (0x82de14)
"ido-make-merged-file-list-1" (0x82e124)
"byte-code" (0x82e370)
"byte-code" (0x82e710)
"byte-code" (0x82ead0)
"ido-make-merged-file-list" (0x82ef50)
"ido-read-internal" (0x82f294)
"ido-file-internal" (0x82f5a4)
"ido-find-file" (0x82f8d4)
"call-interactively" (0x82fb64)
(gdb) print stack
No symbol "stack" in current context.
(gdb) i threads
* 52 Thread 15620.0x2d98  0x7d61c876 in ?? ()
  4 Thread 15620.0x2e54  0x7d61c846 in ?? ()
  3 Thread 15620.0xd44  0x7d65b878 in ?? ()
  1 Thread 15620.0xae8  w32_abort () at w32fns.c:7182
(gdb) t 4
[Switching to thread 4 (Thread 15620.0x2e54)]#0  0x7d61c846 in ?? ()
(gdb) bt
#0  0x7d61c846 in ?? ()
#1  0x7d4d8c0d in RegisterWaitForInputIdle () from C:\WINDOWS\syswow64\kernel32.dll
#2  0x00000228 in ?? ()
#3  0xffffffff in ?? ()
#4  0x00000000 in ?? ()

Lisp Backtrace:
0x37acce0 PVEC_COMPILED
"mapc" (0x82db04)
"ido-set-matches-1" (0x82de14)
"ido-make-merged-file-list-1" (0x82e124)
"byte-code" (0x82e370)
"byte-code" (0x82e710)
"byte-code" (0x82ead0)
"ido-make-merged-file-list" (0x82ef50)
"ido-read-internal" (0x82f294)
"ido-file-internal" (0x82f5a4)
"ido-find-file" (0x82f8d4)
"call-interactively" (0x82fb64)
(gdb) print stack
No symbol "stack" in current context.
(gdb) t 3
[Switching to thread 3 (Thread 15620.0xd44)]#0  0x7d65b878 in ?? ()
(gdb) bt
#0  0x7d65b878 in ?? ()
#1  0x77bc641c in msvcrt!_global_unwind2 () from C:\WINDOWS\syswow64\msvcrt.dll
#2  0x77bc7e30 in msvcrt!longjmp () from C:\WINDOWS\syswow64\msvcrt.dll
#3  0x0082ffe0 in ?? ()
Backtrace stopped: previous frame inner to this frame (corrupt stack?)

Lisp Backtrace:
0x37acce0 PVEC_COMPILED
"mapc" (0x82db04)
"ido-set-matches-1" (0x82de14)
"ido-make-merged-file-list-1" (0x82e124)
"byte-code" (0x82e370)
"byte-code" (0x82e710)
"byte-code" (0x82ead0)
"ido-make-merged-file-list" (0x82ef50)
"ido-read-internal" (0x82f294)
"ido-file-internal" (0x82f5a4)
"ido-find-file" (0x82f8d4)
"call-interactively" (0x82fb64)
(gdb) p stack
No symbol "stack" in current context.
(gdb) t 1
[Switching to thread 1 (Thread 15620.0xae8)]#0  w32_abort () at w32fns.c:7182
7182    in w32fns.c
(gdb) bt
#0  w32_abort () at w32fns.c:7182
#1  0x010e19de in exec_byte_code (bytestr=92733073, vector=58379621, maxdepth=12, args_template=54736922, nargs=0, args=0x0)
    at bytecode.c:1834
#2  0x01037d02 in funcall_lambda (fun=58379493, nargs=1, arg_vector=0x343381a) at eval.c:3205
#3  0x010371a3 in Ffuncall (nargs=2, args=0x82d998) at eval.c:3023
#4  0x010362cf in call1 (fn=58379493, arg1=102127238) at eval.c:2743
#5  0x010793b7 in mapcar1 (leni=96, vals=0x0, fn=58379493, seq=102091926) at fns.c:2346
#6  0x0107989f in Fmapc (function=58379493, sequence=102091926) at fns.c:2434
#7  0x01036e0a in Ffuncall (nargs=3, args=0x82db00) at eval.c:2977
#8  0x010df7f2 in exec_byte_code (bytestr=92727889, vector=59869445, maxdepth=24, args_template=54736922, nargs=0, args=0x0)
    at bytecode.c:785
#9  0x01037d02 in funcall_lambda (fun=58379333, nargs=1, arg_vector=0x343381a) at eval.c:3205
#10 0x010371a3 in Ffuncall (nargs=2, args=0x82de10) at eval.c:3023
#11 0x010df7f2 in exec_byte_code (bytestr=59875297, vector=59869701, maxdepth=28, args_template=54736922, nargs=0, args=0x0)
    at bytecode.c:785
#12 0x01037d02 in funcall_lambda (fun=58523781, nargs=3, arg_vector=0x343381a) at eval.c:3205
#13 0x010371a3 in Ffuncall (nargs=4, args=0x82e120) at eval.c:3023
#14 0x010df7f2 in exec_byte_code (bytestr=59872801, vector=59935493, maxdepth=16, args_template=54736922, nargs=0, args=0x0)
    at bytecode.c:785
#15 0x010ded90 in Fbyte_code (bytestr=59872801, vector=59935493, maxdepth=16) at bytecode.c:423
#16 0x01034f92 in eval_sub (form=92753774) at eval.c:2328
#17 0x01032766 in internal_catch (tag=59857306, func=0x103460e <eval_sub>, arg=92753774) at eval.c:1256
#18 0x010e01b0 in exec_byte_code (bytestr=59872929, vector=58523717, maxdepth=8, args_template=54736922, nargs=0, args=0x0)
    at bytecode.c:966
#19 0x010ded90 in Fbyte_code (bytestr=59872929, vector=58523717, maxdepth=8) at bytecode.c:423
#20 0x01034f92 in eval_sub (form=92751982) at eval.c:2328
#21 0x01032c61 in internal_lisp_condition_case (var=54736922, bodyform=92751982, handlers=92753798) at eval.c:1453
#22 0x010e0217 in exec_byte_code (bytestr=59873025, vector=58396613, maxdepth=12, args_template=54736922, nargs=0, args=0x0)
    at bytecode.c:981
#23 0x010ded90 in Fbyte_code (bytestr=59873025, vector=58396613, maxdepth=12) at bytecode.c:423
#24 0x01034f92 in eval_sub (form=92752014) at eval.c:2328
#25 0x01032c61 in internal_lisp_condition_case (var=54736922, bodyform=92752014, handlers=92752254) at eval.c:1453
#26 0x010e0217 in exec_byte_code (bytestr=59873249, vector=59940229, maxdepth=16, args_template=54736922, nargs=0, args=0x0)
    at bytecode.c:981
#27 0x01037d02 in funcall_lambda (fun=58396389, nargs=3, arg_vector=0x343381a) at eval.c:3205
#28 0x010371a3 in Ffuncall (nargs=4, args=0x82ef4c) at eval.c:3023
#29 0x010df7f2 in exec_byte_code (bytestr=92197297, vector=59854853, maxdepth=88, args_template=54736922, nargs=0, args=0x0)
    at bytecode.c:785
#30 0x01037d02 in funcall_lambda (fun=58212901, nargs=6, arg_vector=0x343381a) at eval.c:3205
#31 0x010371a3 in Ffuncall (nargs=7, args=0x82f290) at eval.c:3023
#32 0x010df7f2 in exec_byte_code (bytestr=92545649, vector=92501509, maxdepth=32, args_template=54736922, nargs=0, args=0x0)
    at bytecode.c:785
#33 0x01037d02 in funcall_lambda (fun=58209477, nargs=1, arg_vector=0x343381a) at eval.c:3205
#34 0x010371a3 in Ffuncall (nargs=2, args=0x82f5a0) at eval.c:3023
#35 0x010df7f2 in exec_byte_code (bytestr=92768337, vector=60704677, maxdepth=8, args_template=54736922, nargs=0, args=0x0)
    at bytecode.c:785
#36 0x01037d02 in funcall_lambda (fun=58724037, nargs=0, arg_vector=0x343381a) at eval.c:3205
#37 0x010371a3 in Ffuncall (nargs=1, args=0x82f8d0) at eval.c:3023
#38 0x01036246 in apply1 (fn=55597490, arg=54736922) at eval.c:2710
#39 0x010e259d in Fcall_interactively (function=55597490, record_flag=54736922, keys=54758149) at callint.c:379
#40 0x01036e78 in Ffuncall (nargs=4, args=0x82fb60) at eval.c:2981
#41 0x01036349 in call3 (fn=54857066, arg1=55597490, arg2=54736922, arg3=54736922) at eval.c:2774
#42 0x0101fa4b in Fcommand_execute (cmd=55597490, record_flag=54736922, keys=54736922, special=54736922) at keyboard.c:10280
#43 0x01006535 in command_loop_1 () at keyboard.c:1570
#44 0x01032d43 in internal_condition_case (bfun=0x10055f8 <command_loop_1>, handlers=54794650, hfun=0x1004e17 <cmd_error>)
    at eval.c:1499
#45 0x01005254 in command_loop_2 (ignore=54736922) at keyboard.c:1158
#46 0x01032766 in internal_catch (tag=54792674, func=0x1005230 <command_loop_2>, arg=54736922) at eval.c:1256
#47 0x01005210 in command_loop () at keyboard.c:1137
#48 0x010047ec in recursive_edit_1 () at keyboard.c:757
#49 0x01004b07 in Frecursive_edit () at keyboard.c:821
#50 0x01002834 in main (argc=1, argv=0xb02ef8) at emacs.c:1706

Lisp Backtrace:
0x37acce0 PVEC_COMPILED
"mapc" (0x82db04)
"ido-set-matches-1" (0x82de14)
"ido-make-merged-file-list-1" (0x82e124)
"byte-code" (0x82e370)
"byte-code" (0x82e710)
"byte-code" (0x82ead0)
"ido-make-merged-file-list" (0x82ef50)
"ido-read-internal" (0x82f294)
"ido-file-internal" (0x82f5a4)
"ido-find-file" (0x82f8d4)
"call-interactively" (0x82fb64)
(gdb)
-----Original Message-----
From: Eli Zaretskii [mailto:[email-masked]]
Sent: Friday, October 28, 2011 2:39 AM
To: Joseph Jones
Cc: [email-masked]
Subject: Re: bug#9723: 24.0.50; Emacs Clipboard crash

> From: Joseph Jones <[email-masked]>
> CC: "[email-masked]" <[email-masked]>
> Date: Thu, 27 Oct 2011 11:28:31 -0700
>
> Yes. Ctrl+h b is tied to ido-switch-buffer
>
>
> (gdb) print byte_stack_list
> $1 = (struct byte_stack *) 0x440
> (gdb) print stack
> $2 = {
>   pc = 0x58801d7 "",
>   byte_string = 59862065,
>   byte_string_start = 0x5880188 "╞\030╟╚        \"\210╞╔╩\217\210\bâ\032",
>   constants = 59899269,
>   next = 0x82eca4
> }
> (gdb)

So byte_stack_list isn't NULL, but is nevertheless garbage.
Hmm... some snafu during GC, perhaps?

If you still have that session in GDB, please copy the following two
functions to a file:

---------------------- cut here ----------------------
define xprintstr1
  set $data = (char *) $arg0->data
  output/c ($arg0->size > 1000) ? 0 : ($data[0])@($arg0->size_byte < 0 ? $arg0->size & ~gdb_array_mark_flag : $arg0->size_byte)
end

define xbytestack
  set $st = &stack
  while $st
    printf "0x%x => ", $st->byte_string
    xgetptr ($st->byte_string)
    set $x = (struct Lisp_String *) $ptr
    xprintstr1 $x
    echo \n
    set $st = $st->next
  end
end
---------------------- cut here ----------------------

Let's say the file's name is `foo', then type "source foo" at GDB
prompt, and then type these two commands:

  (gdb) frame 0
  (gdb) xbytestack

This must be _after_ you source .gdbinit, because xbytestack uses some
of the commands defined there, so if this is a new session, source
.gdbinit first.