From: Chong Yidong <cyd@stupidchicken.com>
To: Adrian Robert <adrian.b.robert@gmail.com>
Cc: 5811@debbugs.gnu.org, David Engster <deng@randomsample.de>
Subject: bug#5811: 23.1.94; Emacs Nextstep port crashes after graphical yes-or-no-p
Date: Thu, 01 Apr 2010 11:31:47 -0400 [thread overview]
Message-ID: <87ljd7b34s.fsf@stupidchicken.com> (raw)
In-Reply-To: <m2d3yku6rc.fsf@imac-c2.pc.gwdg.de> (David Engster's message of "Wed, 31 Mar 2010 12:26:15 +0200")
Could you take a look at this bug report? Thanks.
David, it would help if you compile Emacs without optimizations. That
makes the stack trace easier to read.
David Engster <deng@randomsample.de> writes:
> I've notice that Emacs didn't seem to correctly deal with graphical
> 'yes-or-no-p' question. When I've tried to further investigate this
> issue, I've got Emacs to crash upon the following code:
>
> * Emacs -Q
>
> * Evalute the following:
>
> (let ((last-nonmenu-event nil))
> (yes-or-no-p "Question"))
>
> * Click on "No"
>
> Emacs crashes with EXC_BAD_ACCESS.
>
> The above code runs fine when running Emacs under X11 on the same system.
>
> I'm using the latest pretest (23.1.94), configured only with
> "--with-ns", on Mac OS X 10.6.3., using the following gcc:
>
> Using built-in specs.
> Target: i686-apple-darwin10
> Configured with: /var/tmp/gcc/gcc-5646.1~2/src/configure --disable-checking --enable-werror --prefix=/usr --mandir=/share/man --enable-languages=c,objc,c++,obj-c++ --program-transform-name=/^[cg][^.-]*$/s/$/-4.2/ --with-slibdir=/usr/lib --build=i686-apple-darwin10 --with-gxx-include-dir=/include/c++/4.2.1 --program-prefix=i686-apple-darwin10- --host=x86_64-apple-darwin10 --target=i686-apple-darwin10
> Thread model: posix
> gcc version 4.2.1 (Apple Inc. build 5646) (dot 1)
>
> Here are the backtraces from running in gdb:
>
> -------------------------- Normal backtrace -------------------------------------
> Program received signal EXC_BAD_ACCESS, Could not access memory.
> Reason: KERN_INVALID_ADDRESS at address: 0x0000000001800010
> print_object (obj=25165834, printcharfun=4320133130, escapeflag=1) at print.c:1739
> 1739 register unsigned char *p = SDATA (SYMBOL_NAME (obj));
> (gdb) bt
> #0 print_object (obj=25165834, printcharfun=4320133130, escapeflag=1) at print.c:1739
> #1 0x00000001001300f3 in Fprin1_to_string (object=25165834, noescape=4320133130) at print.c:792
> #2 0x0000000100111431 in Ffuncall (nargs=2, args=<value temporarily unavailable, due to optimizations>) at eval.c:3027
> #3 0x000000010014dc1e in Fbyte_code (bytestr=<value temporarily unavailable, due to optimizations>, vector=<value temporarily unavailable, due to optimizations>, maxdepth=<value temporarily unavailable, due to optimizations>) at bytecode.c:680
> #4 0x0000000100110d8c in funcall_lambda (fun=4298756909, nargs=1, arg_vector=0x7fff5fbfda18) at eval.c:3211
> #5 0x00000001001111d2 in Ffuncall (nargs=2, args=<value temporarily unavailable, due to optimizations>) at eval.c:3081
> #6 0x000000010014dc1e in Fbyte_code (bytestr=<value temporarily unavailable, due to optimizations>, vector=<value temporarily unavailable, due to optimizations>, maxdepth=<value temporarily unavailable, due to optimizations>) at bytecode.c:680
> #7 0x0000000100110d8c in funcall_lambda (fun=4298756709, nargs=1, arg_vector=0x7fff5fbfdbf8) at eval.c:3211
> #8 0x00000001001111d2 in Ffuncall (nargs=2, args=<value temporarily unavailable, due to optimizations>) at eval.c:3081
> #9 0x000000010014dc1e in Fbyte_code (bytestr=<value temporarily unavailable, due to optimizations>, vector=<value temporarily unavailable, due to optimizations>, maxdepth=<value temporarily unavailable, due to optimizations>) at bytecode.c:680
> #10 0x0000000100110d8c in funcall_lambda (fun=4298757197, nargs=1, arg_vector=0x7fff5fbfde28) at eval.c:3211
> #11 0x00000001001111d2 in Ffuncall (nargs=2, args=<value temporarily unavailable, due to optimizations>) at eval.c:3081
> #12 0x000000010010dd6e in Fcall_interactively (function=4321163482, record_flag=4320133130, keys=4317002904) at callint.c:869
> #13 0x000000010011141c in Ffuncall (nargs=4, args=<value temporarily unavailable, due to optimizations>) at eval.c:3030
> #14 0x00000001001115c6 in call3 (fn=<value temporarily unavailable, due to optimizations>, arg1=<value temporarily unavailable, due to optimizations>, arg2=<value temporarily unavailable, due to optimizations>, arg3=<value temporarily unavailable, due to optimizations>) at eval.c:2850
> #15 0x00000001000ab987 in command_loop_1 () at keyboard.c:1904
> #16 0x000000010010f8a7 in internal_condition_case (bfun=0x1000ab4c0 <command_loop_1>, handlers=4320204218, hfun=0x1000a3770 <cmd_error>) at eval.c:1490
> #17 0x00000001000a2af7 in command_loop_2 () at keyboard.c:1360
> #18 0x000000010010f9b0 in internal_catch (tag=<value temporarily unavailable, due to optimizations>, func=0x1000a2ac0 <command_loop_2>, arg=4320133130) at eval.c:1226
> #19 0x00000001000a3586 in command_loop () at keyboard.c:1339
> #20 0x00000001000a39ef in recursive_edit_1 () at keyboard.c:954
> #21 0x00000001000a3b8f in Frecursive_edit () at keyboard.c:1016
> #22 0x0000000100099147 in main (argc=2, argv=0x7fff5fbfe688) at emacs.c:1833
> ---------------------------------------------------------------------------------
>
>
> ---------------------------- Full Backtrace -------------------------------------
> (gdb) bt full
> #0 print_object (obj=25165834, printcharfun=4320133130, escapeflag=1) at print.c:1739
> end = <value temporarily unavailable, due to optimizations>
> c = <value temporarily unavailable, due to optimizations>
> i_byte = <value temporarily unavailable, due to optimizations>
> confusing = <value temporarily unavailable, due to optimizations>
> p = <value temporarily unavailable, due to optimizations>
> size_byte = <value temporarily unavailable, due to optimizations>
> buf = "@Ö¿_ÿ\000\000hf4ÿ\000\000Ö¿_ÿ\000\000è\003\000\000\000\000\000\000`Ö¿_\001\000\000"
> #1 0x00000001001300f3 in Fprin1_to_string (object=25165834, noescape=4320133130) at print.c:792
> old = (struct buffer *) 0x101502ac8
> start_point = -1
> start_point_byte = -1
> free_print_buffer = 1
> old_point = -1
> old_point_byte = -1
> printcharfun = 4320133130
> save_deactivate_mark = 4320133130
> previous = <value temporarily unavailable, due to optimizations>
> #2 0x0000000100111431 in Ffuncall (nargs=2, args=<value temporarily unavailable, due to optimizations>) at eval.c:3027
> fun = <value temporarily unavailable, due to optimizations>
> original_fun = <value temporarily unavailable, due to optimizations>
> funcar = <value temporarily unavailable, due to optimizations>
> numargs = 1
> val = <value temporarily unavailable, due to optimizations>
> backtrace = {
> next = 0x7fff5fbfd9a0,
> function = 0x7fff5fbfd800,
> args = 0x7fff5fbfd808,
> nargs = 1,
> evalargs = 0 '\0',
> debug_on_exit = 0 '\0'
> }
> internal_args = (Lisp_Object *) 0x7fff5fbfd750
> i = <value temporarily unavailable, due to optimizations>
> #3 0x000000010014dc1e in Fbyte_code (bytestr=<value temporarily unavailable, due to optimizations>, vector=<value temporarily unavailable, due to optimizations>, maxdepth=<value temporarily unavailable, due to optimizations>) at bytecode.c:680
> count = 10
> op = <value temporarily unavailable, due to optimizations>
> vectorp = (Lisp_Object *) 0x10039d398
> stack = {
> pc = 0x100469da7 "*\v\f`Æ\035\036\016\030\031\036\017È\n!É\n!\036\020$",
> top = 0x7fff5fbfd808,
> bottom = 0x7fff5fbfd800,
> byte_string = 4298756969,
> byte_string_start = 0x100469da0 "Æ\030\031Ç\n!*\v\f`Æ\035\036\016\030\031\036\017È\n!É\n!\036\020$",
> constants = 4298757005,
> next = 0x7fff5fbfda60
> }
> top = (Lisp_Object *) 0x7fff5fbfd800
> result = <value temporarily unavailable, due to optimizations>
> #4 0x0000000100110d8c in funcall_lambda (fun=4298756909, nargs=1, arg_vector=0x7fff5fbfda18) at eval.c:3211
> val = <value temporarily unavailable, due to optimizations>
> syms_left = <value temporarily unavailable, due to optimizations>
> next = <value temporarily unavailable, due to optimizations>
> i = 1
> optional = 0
> rest = 0
> #5 0x00000001001111d2 in Ffuncall (nargs=2, args=<value temporarily unavailable, due to optimizations>) at eval.c:3081
> fun = <value temporarily unavailable, due to optimizations>
> original_fun = 4324698170
> funcar = <value temporarily unavailable, due to optimizations>
> numargs = 1
> val = <value temporarily unavailable, due to optimizations>
> backtrace = {
> next = 0x7fff5fbfdb80,
> function = 0x7fff5fbfda10,
> args = 0x7fff5fbfda18,
> nargs = 1,
> evalargs = 0 '\0',
> debug_on_exit = 0 '\0'
> }
> internal_args = (Lisp_Object *) 0x7fff5fbfda18
> i = <value temporarily unavailable, due to optimizations>
> #6 0x000000010014dc1e in Fbyte_code (bytestr=<value temporarily unavailable, due to optimizations>, vector=<value temporarily unavailable, due to optimizations>, maxdepth=<value temporarily unavailable, due to optimizations>) at bytecode.c:680
> count = 8
> op = <value temporarily unavailable, due to optimizations>
> vectorp = (Lisp_Object *) 0x10039d2d8
> stack = {
> pc = 0x100469e10 ")",
> top = 0x7fff5fbfda18,
> bottom = 0x7fff5fbfda10,
> byte_string = 4298756777,
> byte_string_start = 0x100469e00 "\b\b",
> constants = 4298756813,
> next = 0x7fff5fbfdc40
> }
> top = (Lisp_Object *) 0x7fff5fbfda10
> result = <value temporarily unavailable, due to optimizations>
> #7 0x0000000100110d8c in funcall_lambda (fun=4298756709, nargs=1, arg_vector=0x7fff5fbfdbf8) at eval.c:3211
> val = <value temporarily unavailable, due to optimizations>
> syms_left = <value temporarily unavailable, due to optimizations>
> next = <value temporarily unavailable, due to optimizations>
> i = 1
> optional = 0
> rest = 0
> #8 0x00000001001111d2 in Ffuncall (nargs=2, args=<value temporarily unavailable, due to optimizations>) at eval.c:3081
> fun = <value temporarily unavailable, due to optimizations>
> original_fun = 4324684746
> funcar = <value temporarily unavailable, due to optimizations>
> numargs = 1
> val = <value temporarily unavailable, due to optimizations>
> backtrace = {
> next = 0x7fff5fbfdd60,
> function = 0x7fff5fbfdbf0,
> args = 0x7fff5fbfdbf8,
> nargs = 1,
> evalargs = 0 '\0',
> debug_on_exit = 0 '\0'
> }
> internal_args = (Lisp_Object *) 0x7fff5fbfdbf8
> i = <value temporarily unavailable, due to optimizations>
> #9 0x000000010014dc1e in Fbyte_code (bytestr=<value temporarily unavailable, due to optimizations>, vector=<value temporarily unavailable, due to optimizations>, maxdepth=<value temporarily unavailable, due to optimizations>) at bytecode.c:680
> count = 6
> op = <value temporarily unavailable, due to optimizations>
> vectorp = (Lisp_Object *) 0x10039d4c8
> stack = {
> pc = 0x100469d73 "\v)B\034A\n=
> \033",
> top = 0x7fff5fbfdbf8,
> bottom = 0x7fff5fbfdbf0,
> byte_string = 4298757273,
> byte_string_start = 0x100469d66 "\b
> \b",
> constants = 4298757309,
> next = 0x0
> }
> top = (Lisp_Object *) 0x7fff5fbfdbf0
> result = <value temporarily unavailable, due to optimizations>
> #10 0x0000000100110d8c in funcall_lambda (fun=4298757197, nargs=1, arg_vector=0x7fff5fbfde28) at eval.c:3211
> val = <value temporarily unavailable, due to optimizations>
> syms_left = <value temporarily unavailable, due to optimizations>
> next = <value temporarily unavailable, due to optimizations>
> i = 1
> optional = 0
> rest = 0
> #11 0x00000001001111d2 in Ffuncall (nargs=2, args=<value temporarily unavailable, due to optimizations>) at eval.c:3081
> fun = <value temporarily unavailable, due to optimizations>
> original_fun = 4321163482
> funcar = <value temporarily unavailable, due to optimizations>
> numargs = 1
> val = <value temporarily unavailable, due to optimizations>
> backtrace = {
> next = 0x7fff5fbfe000,
> function = 0x7fff5fbfde20,
> args = 0x7fff5fbfde28,
> nargs = 1,
> evalargs = 0 '\0',
> debug_on_exit = 0 '\0'
> }
> internal_args = (Lisp_Object *) 0x7fff5fbfde28
> i = <value temporarily unavailable, due to optimizations>
> #12 0x000000010010dd6e in Fcall_interactively (function=4321163482, record_flag=4320133130, keys=4317002904) at callint.c:869
> val = <value temporarily unavailable, due to optimizations>
> args = (Lisp_Object *) 0x7fff5fbfde20
> visargs = (Lisp_Object *) 0x7fff5fbfde00
> specs = 4320133130
> filter_specs = <value temporarily unavailable, due to optimizations>
> teml = 1
> up_event = 4320133130
> enable = 4320133130
> speccount = 3
> next_event = 2
> prefix_arg = 4320133130
> string = <value temporarily unavailable, due to optimizations>
> tem = (unsigned char *) 0x10019edf0 ""
> varies = (int *) 0x7fff5fbfdde0
> i = 1
> j = 1
> foo = <value temporarily unavailable, due to optimizations>
> prompt1 = '\0' <repeats 99 times>
> arg_from_tty = 0
> key_count = 2
> record_then_fail = 0
> save_this_command = 4321163482
> save_last_command = 4320190778
> save_this_original_command = 4321163482
> save_real_this_command = 4321163482
> #13 0x000000010011141c in Ffuncall (nargs=4, args=<value temporarily unavailable, due to optimizations>) at eval.c:3030
> fun = <value temporarily unavailable, due to optimizations>
> original_fun = <value temporarily unavailable, due to optimizations>
> funcar = <value temporarily unavailable, due to optimizations>
> numargs = 3
> val = <value temporarily unavailable, due to optimizations>
> backtrace = {
> next = 0x0,
> function = 0x7fff5fbfe070,
> args = 0x7fff5fbfe078,
> nargs = 3,
> evalargs = 0 '\0',
> debug_on_exit = 0 '\0'
> }
> internal_args = (Lisp_Object *) 0x7fff5fbfe078
> i = <value temporarily unavailable, due to optimizations>
> #14 0x00000001001115c6 in call3 (fn=<value temporarily unavailable, due to optimizations>, arg1=<value temporarily unavailable, due to optimizations>, arg2=<value temporarily unavailable, due to optimizations>, arg3=<value temporarily unavailable, due to optimizations>) at eval.c:2850
> ret_ungc_val = 4296201300
> args = {4320305978, 4321163482, 4320133130, 4320133130}
> #15 0x00000001000ab987 in command_loop_1 () at keyboard.c:1904
> cmd = <value temporarily unavailable, due to optimizations>
> lose = <value temporarily unavailable, due to optimizations>
> keybuf = {96, 20, 140734799798792, 4297574704, 4611686018427404288, 4611686018427389952, 4300458264, 4300480048, 140734799798736, 4296082611, 140734799798592, 140734799861322, 0, 3, 140734799798792, 0, 140734800084000, 0, 140734799798688, 140734799883712, 0, 140734800069792, 0, 140734799798672, 140734799798416, 0, 4300526552, 4320133130, 4321264154, -8680165209918493533}
> i = <value temporarily unavailable, due to optimizations>
> prev_modiff = 264
> prev_buffer = (struct buffer *) 0x101502ac8
> already_adjusted = 0
> #16 0x000000010010f8a7 in internal_condition_case (bfun=0x1000ab4c0 <command_loop_1>, handlers=4320204218, hfun=0x1000a3770 <cmd_error>) at eval.c:1490
> val = <value temporarily unavailable, due to optimizations>
> c = {
> tag = 4320133130,
> val = 4320133130,
> next = 0x7fff5fbfe360,
> gcpro = 0x0,
> jmp = {5512632, 1, 1606411040, 32767, 1606410720, 32767, 5512472, 1, 5489576, 1, 5490968, 1, 5512752, 1, 1112097, 1, 530, 0, 8096, 895, 1606411136, 32767, 668720, 1, 5513384, 1, 5513328, 1, 2, 0, 0, 0, 0, 0, 6886400, 1, 0},
> backlist = 0x0,
> handlerlist = 0x0,
> lisp_eval_depth = 0,
> pdlcount = 2,
> poll_suppress_count = 0,
> interrupt_input_blocked = 0,
> byte_stack = 0x0
> }
> h = {
> handler = 4320204218,
> var = 4320133130,
> chosen_clause = 3418355679867659105,
> tag = 0x7fff5fbfe200,
> next = 0x0
> }
> #17 0x00000001000a2af7 in command_loop_2 () at keyboard.c:1360
> val = 4296201300
> #18 0x000000010010f9b0 in internal_catch (tag=<value temporarily unavailable, due to optimizations>, func=0x1000a2ac0 <command_loop_2>, arg=4320133130) at eval.c:1226
> c = {
> tag = 4320197482,
> val = 4320133130,
> next = 0x0,
> gcpro = 0x0,
> jmp = {5512632, 1, 1606411328, 32767, 1606411088, 32767, 5512768, 1, 5489576, 1, 5490968, 1, 5512752, 1, 1112479, 1, 534, 0, 8096, 895, 0, 0, 344, 0, 1606411264, 22, -2026609048, 32767, 0, 10, 25412515, 1, 25416952, 1, 25412512, 1, 22031048},
> backlist = 0x0,
> handlerlist = 0x0,
> lisp_eval_depth = 0,
> pdlcount = 2,
> poll_suppress_count = 0,
> interrupt_input_blocked = 0,
> byte_stack = 0x0
> }
> #19 0x00000001000a3586 in command_loop () at keyboard.c:1339
> No locals.
> #20 0x00000001000a39ef in recursive_edit_1 () at keyboard.c:954
> val = <value temporarily unavailable, due to optimizations>
> #21 0x00000001000a3b8f in Frecursive_edit () at keyboard.c:1016
> count = <value temporarily unavailable, due to optimizations>
> buffer = 4320133130
> #22 0x0000000100099147 in main (argc=2, argv=0x7fff5fbfe688) at emacs.c:1833
> dummy = 0
> stack_bottom_variable = -106 ''
> do_initial_setlocale = <value temporarily unavailable, due to optimizations>
> skip_args = 0
> rlim = {
> rlim_cur = 8720000,
> rlim_max = 67104768
> }
> no_loadup = 0
> junk = 0x0
> dname_arg = 0x0
> dname_arg2 = "\000\000\000\000\000\000\000\000æ¿_ÿ\000\000\000\000\000\000\002\000\000\000\000\000\000\000\001\000\000\000\000\000À_ÿ\000\000\000\000\000\000\000\000\000\000ø\005À_ÿ\000\000\t\000\000\000\t\000\000\000¨ç¿_ÿ\000\000`\aÀ_ÿ\000"
> ----------------------------------------------------------------------------------
next prev parent reply other threads:[~2010-04-01 15:31 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-03-31 10:26 bug#5811: 23.1.94; Emacs Nextstep port crashes after graphical yes-or-no-p David Engster
2010-04-01 15:31 ` Chong Yidong [this message]
2010-04-01 20:30 ` David Engster
2010-04-02 5:58 ` Adrian Robert
2010-04-06 11:37 ` David Engster
2010-04-06 12:30 ` Adrian Robert
2010-04-06 13:12 ` David Engster
2010-04-06 13:17 ` Adrian Robert
2010-04-10 6:11 ` Adrian Robert
2010-04-10 15:15 ` Chong Yidong
2010-04-20 8:33 ` David Engster
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87ljd7b34s.fsf@stupidchicken.com \
--to=cyd@stupidchicken.com \
--cc=5811@debbugs.gnu.org \
--cc=adrian.b.robert@gmail.com \
--cc=deng@randomsample.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).