unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Abort when creating frame
@ 2011-09-05 16:47 martin rudalics
  2011-09-05 17:22 ` Eli Zaretskii
  0 siblings, 1 reply; 19+ messages in thread
From: martin rudalics @ 2011-09-05 16:47 UTC (permalink / raw)
  To: emacs-devel

With current trunk bootstrapped an hour ago

GNU Emacs 24.0.50.1 (i386-mingw-nt5.1.2600)
  of 2011-09-05 on NESTOR

I get the backtraces below.

It might be related to a change I introduced back in June: I now (#8)
run_window_configuration_change_hook when doing x_set_tool_bar_lines
something we didn't do earlier.  Personally, I don't care whether we run
it but since adding/removing the toolbar changes the sizes of window(s)
it should be run, in principle.  But maybe something hasn't been set up
yet correctly so the abort triggers ...

martin


(gdb) bt
#0  w32_abort () at w32fns.c:7182
#1  0x011e5ef1 in bidi_initialize () at bidi.c:762
#2  0x011e5fe3 in bidi_init_it (charpos=1, bytepos=1, frame_window_p=0,
     bidi_it=0x82e978) at bidi.c:801
#3  0x010f220f in init_iterator (it=0x82e3c0, w=0x2fed800, charpos=1,
     bytepos=1, row=0x0, base_face_id=DEFAULT_FACE_ID) at xdisp.c:2628
#4  0x011029b4 in resize_mini_window (w=0x2fed800, exact_p=1) at xdisp.c:9847
#5  0x0119ca74 in do_switch_frame (frame=56233989, track=1, for_deletion=0,
     norecord=50116658) at frame.c:829
#6  0x0119cc4d in Fselect_frame (frame=56233989, norecord=50116658)
     at frame.c:874
#7  0x0114a518 in select_frame_norecord (frame=56233989) at window.c:2921
#8  0x0114a618 in run_window_configuration_change_hook (f=0x35a1000)
     at window.c:2946
#9  0x0116dea1 in x_set_tool_bar_lines (f=0x35a1000, value=4, oldval=50116634)
     at w32fns.c:1635
#10 0x011a0c82 in x_set_frame_parameters (f=0x35a1000, alist=50116634)
     at frame.c:2924
#11 0x011a2f71 in x_default_parameter (f=0x35a1000, alist=50097526,
     prop=50327154, deflt=4, xprop=0x0, xclass=0x0, type=RES_TYPE_NUMBER)
     at frame.c:3929
#12 0x01173d04 in Fx_create_frame (parameters=50097526) at w32fns.c:4249
#13 0x01022853 in Ffuncall (nargs=2, args=0x82f020) at eval.c:2966
#14 0x010c92eb in exec_byte_code (bytestr=19252057, vector=19252077,
     maxdepth=16, args_template=50116634, nargs=0, args=0x0) at bytecode.c:785
#15 0x01023172 in funcall_lambda (fun=19252021, nargs=1, arg_vector=0x82f264)
     at eval.c:3197
#16 0x01022a70 in Ffuncall (nargs=2, args=0x82f260) at eval.c:3015
#17 0x010c92eb in exec_byte_code (bytestr=19577001, vector=19577021,
     maxdepth=20, args_template=50116634, nargs=0, args=0x0) at bytecode.c:785
#18 0x01023172 in funcall_lambda (fun=19576973, nargs=1, arg_vector=0x82f4b4)
     at eval.c:3197
#19 0x01022a70 in Ffuncall (nargs=2, args=0x82f4b0) at eval.c:3015
#20 0x010c92eb in exec_byte_code (bytestr=19574297, vector=19574317,
     maxdepth=24, args_template=50116634, nargs=0, args=0x0) at bytecode.c:785
#21 0x01023172 in funcall_lambda (fun=19574269, nargs=0, arg_vector=0x82f704)
     at eval.c:3197
#22 0x01022a70 in Ffuncall (nargs=1, args=0x82f700) at eval.c:3015
#23 0x010c92eb in exec_byte_code (bytestr=19271889, vector=19271909,
     maxdepth=72, args_template=0, nargs=0, args=0x82f988) at bytecode.c:785
#24 0x01022ebb in funcall_lambda (fun=19271861, nargs=0, arg_vector=0x82f988)
     at eval.c:3131
#25 0x01022a70 in Ffuncall (nargs=1, args=0x82f984) at eval.c:3015
#26 0x010c92eb in exec_byte_code (bytestr=19269065, vector=19269085,
     maxdepth=32, args_template=0, nargs=0, args=0x82fb40) at bytecode.c:785
#27 0x01022ebb in funcall_lambda (fun=19269037, nargs=0, arg_vector=0x82fb40)
     at eval.c:3131
#28 0x01022cff in apply_lambda (fun=19269037, args=50116634) at eval.c:3074
#29 0x01021838 in eval_sub (form=50726046) at eval.c:2359
#30 0x0102107c in Feval (form=50726046, lexical=50116634) at eval.c:2168
#31 0x01004699 in top_level_2 () at keyboard.c:1166
#32 0x0101feb1 in internal_condition_case (bfun=0x100467d <top_level_2>,
     handlers=50174362, hfun=0x10042fc <cmd_error>) at eval.c:1491
#33 0x010046cb in top_level_1 (ignore=50116634) at keyboard.c:1174
#34 0x0101f987 in internal_catch (tag=50172386, func=0x100469b <top_level_1>,
     arg=50116634) at eval.c:1248
#35 0x01004606 in command_loop () at keyboard.c:1129
#36 0x01003f32 in recursive_edit_1 () at keyboard.c:756
#37 0x0100407c in Frecursive_edit () at keyboard.c:820
#38 0x0100275e in main (argc=1, argv=0xa327b8) at emacs.c:1704

Lisp Backtrace:
"x-create-frame" (0x82f024)
"x-create-frame-with-faces" (0x82f264)
"make-frame" (0x82f4b4)
"frame-initialize" (0x82f704)
"command-line" (0x82f988)
"normal-top-level" (0x82fb40)
(gdb) bt full
#0  w32_abort () at w32fns.c:7182
	button = 8577984
#1  0x011e5ef1 in bidi_initialize () at bidi.c:762
No locals.
#2  0x011e5fe3 in bidi_init_it (charpos=1, bytepos=1, frame_window_p=0,
     bidi_it=0x82e978) at bidi.c:801
No locals.
#3  0x010f220f in init_iterator (it=0x82e3c0, w=0x2fed800, charpos=1,
     bytepos=1, row=0x0, base_face_id=DEFAULT_FACE_ID) at xdisp.c:2628
	highlight_region_p = 0
	remapped_base_face_id = DEFAULT_FACE_ID
#4  0x011029b4 in resize_mini_window (w=0x2fed800, exact_p=1) at xdisp.c:9847
	root = (struct window *) 0x2feda00
	total_height = 9
	max_height = 8745736
	unit = 1
	old_current_buffer = (struct buffer *) 0x2fd5000
	it = {
   window = 50255877,
   w = 0x2fed800,
   f = 0x2fedc00,
   method = GET_FROM_BUFFER,
   stop_charpos = 0,
   prev_stop = 0,
   base_level_stop = 0,
   end_charpos = 1,
   s = 0x0,
   string_nchars = 0,
   region_beg_charpos = -1,
   region_end_charpos = -1,
   redisplay_end_trigger_charpos = 0,
   multibyte_p = 1,
   header_line_p = 0,
   string_from_display_prop_p = 0,
   from_disp_prop_p = 0,
   ellipsis_p = 0,
   avoid_cursor_p = 0,
   dp = 0x35ff400,
   dpvec = 0x0,
   dpend = 0x0,
   dpvec_char_len = 0,
   dpvec_face_id = 0,
   saved_face_id = 0,
   ctl_chars = {0 <repeats 16 times>},
   start = {
     pos = {
       charpos = 1,
       bytepos = 1
     },
     overlay_string_index = -1,
     string_pos = {
       charpos = -1,
       bytepos = -1
     },
     dpvec_index = -1
   },
   current = {
     pos = {
       charpos = 1,
       bytepos = 1
     },
     overlay_string_index = -1,
     string_pos = {
       charpos = -1,
       bytepos = -1
     },
     dpvec_index = -1
   },
   n_overlay_strings = 0,
   overlay_strings_charpos = 0,
   overlay_strings = {0 <repeats 16 times>},
   string_overlays = {0 <repeats 16 times>},
   string = 50116634,
   from_overlay = 0,
   stack = {{
       string = 0,
       string_nchars = 0,
       end_charpos = 0,
       stop_charpos = 0,
       prev_stop = 0,
       base_level_stop = 0,
       cmp_it = {
         stop_pos = 0,
         id = 0,
         ch = 0,
         rule_idx = 0,
         lookback = 0,
         nglyphs = 0,
         reversed_p = 0,
         charpos = 0,
         nchars = 0,
         nbytes = 0,
         from = 0,
         to = 0,
         width = 0
       },
       face_id = 0,
       u = {
         image = {
           object = 0,
           slice = {
             x = 0,
             y = 0,
             width = 0,
             height = 0
           },
           image_id = 0
         },
         comp = {
           object = 0
         },
         stretch = {
           object = 0
         }
       },
       position = {
         charpos = 0,
         bytepos = 0
       },
       current = {
         pos = {
           charpos = 0,
           bytepos = 0
         },
         overlay_string_index = 0,
         string_pos = {
           charpos = 0,
           bytepos = 0
         },
         dpvec_index = 0
       },
       from_overlay = 0,
       area = LEFT_MARGIN_AREA,
       method = GET_FROM_BUFFER,
       paragraph_embedding = NEUTRAL_DIR,
       multibyte_p = 0,
       string_from_display_prop_p = 0,
       display_ellipsis_p = 0,
       avoid_cursor_p = 0,
       bidi_p = 0,
       from_disp_prop_p = 0,
       line_wrap = TRUNCATE,
       voffset = 0,
       space_width = 0,
       font_height = 0
     }, {
       string = 0,
       string_nchars = 0,
       end_charpos = 0,
       stop_charpos = 0,
       prev_stop = 0,
       base_level_stop = 0,
       cmp_it = {
         stop_pos = 0,
         id = 0,
         ch = 0,
         rule_idx = 0,
         lookback = 0,
         nglyphs = 0,
         reversed_p = 0,
         charpos = 0,
         nchars = 0,
         nbytes = 0,
         from = 0,
         to = 0,
         width = 0
       },
       face_id = 0,
       u = {
         image = {
           object = 0,
           slice = {
             x = 0,
             y = 0,
             width = 0,
             height = 0
           },
           image_id = 0
         },
         comp = {
           object = 0
         },
         stretch = {
           object = 0
         }
       },
       position = {
         charpos = 0,
         bytepos = 0
       },
       current = {
         pos = {
           charpos = 0,
           bytepos = 0
         },
         overlay_string_index = 0,
         string_pos = {
           charpos = 0,
           bytepos = 0
         },
         dpvec_index = 0
       },
       from_overlay = 0,
       area = LEFT_MARGIN_AREA,
       method = GET_FROM_BUFFER,
       paragraph_embedding = NEUTRAL_DIR,
       multibyte_p = 0,
       string_from_display_prop_p = 0,
       display_ellipsis_p = 0,
       avoid_cursor_p = 0,
       bidi_p = 0,
       from_disp_prop_p = 0,
       line_wrap = TRUNCATE,
       voffset = 0,
       space_width = 0,
       font_height = 0
     }, {
       string = 0,
       string_nchars = 0,
       end_charpos = 0,
       stop_charpos = 0,
       prev_stop = 0,
       base_level_stop = 0,
       cmp_it = {
         stop_pos = 0,
         id = 0,
         ch = 0,
         rule_idx = 0,
         lookback = 0,
         nglyphs = 0,
         reversed_p = 0,
         charpos = 0,
         nchars = 0,
         nbytes = 0,
         from = 0,
         to = 0,
         width = 0
       },
       face_id = 0,
       u = {
         image = {
           object = 0,
           slice = {
             x = 0,
             y = 0,
             width = 0,
             height = 0
           },
           image_id = 0
         },
         comp = {
           object = 0
         },
         stretch = {
           object = 0
         }
       },
       position = {
         charpos = 0,
         bytepos = 0
       },
       current = {
         pos = {
           charpos = 0,
           bytepos = 0
         },
         overlay_string_index = 0,
         string_pos = {
           charpos = 0,
           bytepos = 0
         },
         dpvec_index = 0
       },
       from_overlay = 0,
       area = LEFT_MARGIN_AREA,
       method = GET_FROM_BUFFER,
       paragraph_embedding = NEUTRAL_DIR,
       multibyte_p = 0,
       string_from_display_prop_p = 0,
       display_ellipsis_p = 0,
       avoid_cursor_p = 0,
       bidi_p = 0,
       from_disp_prop_p = 0,
       line_wrap = TRUNCATE,
       voffset = 0,
       space_width = 0,
       font_height = 0
     }, {
       string = 0,
       string_nchars = 0,
       end_charpos = 0,
       stop_charpos = 0,
       prev_stop = 0,
       base_level_stop = 0,
       cmp_it = {
         stop_pos = 0,
         id = 0,
         ch = 0,
         rule_idx = 0,
         lookback = 0,
         nglyphs = 0,
         reversed_p = 0,
         charpos = 0,
         nchars = 0,
         nbytes = 0,
         from = 0,
         to = 0,
         width = 0
       },
       face_id = 0,
       u = {
         image = {
           object = 0,
           slice = {
             x = 0,
             y = 0,
             width = 0,
             height = 0
           },
           image_id = 0
         },
         comp = {
           object = 0
         },
         stretch = {
           object = 0
         }
       },
       position = {
         charpos = 0,
         bytepos = 0
       },
       current = {
         pos = {
           charpos = 0,
           bytepos = 0
         },
         overlay_string_index = 0,
         string_pos = {
           charpos = 0,
           bytepos = 0
         },
         dpvec_index = 0
       },
       from_overlay = 0,
       area = LEFT_MARGIN_AREA,
       method = GET_FROM_BUFFER,
       paragraph_embedding = NEUTRAL_DIR,
       multibyte_p = 0,
       string_from_display_prop_p = 0,
       display_ellipsis_p = 0,
       avoid_cursor_p = 0,
       bidi_p = 0,
       from_disp_prop_p = 0,
       line_wrap = TRUNCATE,
       voffset = 0,
       space_width = 0,
       font_height = 0
     }, {
       string = 0,
       string_nchars = 0,
       end_charpos = 0,
       stop_charpos = 0,
       prev_stop = 0,
       base_level_stop = 0,
       cmp_it = {
         stop_pos = 0,
         id = 0,
         ch = 0,
         rule_idx = 0,
         lookback = 0,
         nglyphs = 0,
         reversed_p = 0,
         charpos = 0,
         nchars = 0,
         nbytes = 0,
         from = 0,
         to = 0,
         width = 0
       },
       face_id = 0,
       u = {
         image = {
           object = 0,
           slice = {
             x = 0,
             y = 0,
             width = 0,
             height = 0
           },
           image_id = 0
         },
         comp = {
           object = 0
         },
         stretch = {
           object = 0
         }
       },
       position = {
         charpos = 0,
         bytepos = 0
       },
       current = {
         pos = {
           charpos = 0,
           bytepos = 0
         },
         overlay_string_index = 0,
         string_pos = {
           charpos = 0,
           bytepos = 0
         },
         dpvec_index = 0
       },
       from_overlay = 0,
       area = LEFT_MARGIN_AREA,
       method = GET_FROM_BUFFER,
       paragraph_embedding = NEUTRAL_DIR,
       multibyte_p = 0,
       string_from_display_prop_p = 0,
       display_ellipsis_p = 0,
       avoid_cursor_p = 0,
       bidi_p = 0,
       from_disp_prop_p = 0,
       line_wrap = TRUNCATE,
       voffset = 0,
       space_width = 0,
       font_height = 0
     }},
   sp = 0,
   selective = 0,
   what = IT_CHARACTER,
   face_id = -1,
   selective_display_ellipsis_p = 1,
   ctl_arrow_p = 1,
   face_box_p = 0,
   start_of_box_run_p = 0,
   end_of_box_run_p = 0,
   overlay_strings_at_end_processed_p = 0,
   ignore_overlay_strings_at_pos_p = 0,
   glyph_not_available_p = 0,
   starts_in_middle_of_char_p = 0,
   face_before_selective_p = 0,
   constrain_row_ascent_descent_p = 0,
   line_wrap = WINDOW_WRAP,
   base_face_id = 0,
   c = 0,
   len = 0,
   cmp_it = {
     stop_pos = 0,
     id = -1,
     ch = 0,
     rule_idx = 0,
     lookback = 0,
     nglyphs = 0,
     reversed_p = 0,
     charpos = 0,
     nchars = 0,
     nbytes = 0,
     from = 0,
     to = 0,
     width = 0
   },
   char_to_display = 0,
   glyphless_method = GLYPHLESS_DISPLAY_THIN_SPACE,
   image_id = 0,
   slice = {
     x = 50116634,
     y = 50116634,
     width = 50116634,
     height = 50116634
   },
   space_width = 50116634,
   voffset = 0,
   tab_width = 8,
   font_height = 50116634,
   object = 0,
   position = {
     charpos = 0,
     bytepos = 0
   },
   truncation_pixel_width = 0,
   continuation_pixel_width = 1,
   first_visible_x = 0,
   last_visible_x = 9,
   last_visible_y = 1,
   extra_line_spacing = 0,
   max_extra_line_spacing = 0,
   override_ascent = -1,
   override_descent = 0,
   override_boff = 0,
   glyph_row = 0x0,
   area = TEXT_AREA,
   nglyphs = 1,
   pixel_width = 0,
   ascent = 0,
   descent = 0,
   max_ascent = 0,
   max_descent = 0,
   phys_ascent = 0,
   phys_descent = 0,
   max_phys_ascent = 0,
   max_phys_descent = 0,
   current_x = 0,
   continuation_lines_width = 0,
   eol_pos = {
     charpos = 0,
     bytepos = 0
   },
   current_y = 0,
   first_vpos = 0,
   vpos = 0,
   hpos = 0,
   left_user_fringe_bitmap = 0,
   right_user_fringe_bitmap = 0,
   left_user_fringe_face_id = 0,
   right_user_fringe_face_id = 0,
   bidi_p = 1,
   bidi_it = {
     bytepos = 0,
     charpos = 0,
     ch = 0,
     nchars = 0,
     ch_len = 0,
     type = UNKNOWN_BT,
     type_after_w1 = UNKNOWN_BT,
     orig_type = UNKNOWN_BT,
     resolved_level = 0,
     invalid_levels = 0,
     invalid_rl_levels = 0,
     prev_was_pdf = 0,
     prev = {
       bytepos = 0,
       charpos = 0,
       type = UNKNOWN_BT,
       type_after_w1 = UNKNOWN_BT,
       orig_type = UNKNOWN_BT
     },
     last_strong = {
       bytepos = 0,
       charpos = 0,
       type = UNKNOWN_BT,
       type_after_w1 = UNKNOWN_BT,
       orig_type = UNKNOWN_BT
     },
     next_for_neutral = {
       bytepos = 0,
       charpos = 0,
       type = UNKNOWN_BT,
       type_after_w1 = UNKNOWN_BT,
       orig_type = UNKNOWN_BT
     },
     prev_for_neutral = {
       bytepos = 0,
       charpos = 0,
       type = UNKNOWN_BT,
       type_after_w1 = UNKNOWN_BT,
       orig_type = UNKNOWN_BT
     },
     next_for_ws = {
       bytepos = 0,
       charpos = 0,
       type = UNKNOWN_BT,
       type_after_w1 = UNKNOWN_BT,
       orig_type = UNKNOWN_BT
     },
     next_en_pos = 0,
     ignore_bn_limit = 0,
     sor = NEUTRAL_DIR,
     scan_dir = 0,
     disp_pos = 0,
     disp_prop = 0,
     stack_idx = 0,
     level_stack = {{
         level = 0,
         override = NEUTRAL_DIR
       } <repeats 64 times>},
     string = {
       lstring = 50116634,
       s = 0x0,
       schars = 0,
       bufpos = 0,
       from_disp_str = 0,
       unibyte = 0
     },
     paragraph_dir = NEUTRAL_DIR,
     separator_limit = 0,
     first_elt = 0,
     new_paragraph = 0,
     frame_window_p = 0
   },
   paragraph_embedding = NEUTRAL_DIR
}
	height = 8716904
	start = {
   charpos = 8578272,
   bytepos = 8741012
}
	f = (struct frame *) 0x2fedc00
	window_height_changed_p = 0
#5  0x0119ca74 in do_switch_frame (frame=56233989, track=1, for_deletion=0,
     norecord=50116658) at frame.c:829
	sf = (struct frame *) 0x2fedc00
#6  0x0119cc4d in Fselect_frame (frame=56233989, norecord=50116658)
     at frame.c:874
No locals.
#7  0x0114a518 in select_frame_norecord (frame=56233989) at window.c:2921
No locals.
#8  0x0114a618 in run_window_configuration_change_hook (f=0x35a1000)
     at window.c:2946
	count = 17
	frame = 56233989
	global_wcch = 50116634
#9  0x0116dea1 in x_set_tool_bar_lines (f=0x35a1000, value=4, oldval=50116634)
     at w32fns.c:1635
	delta = 1
	nlines = 1
	root_height = 9
	root_window = 56236549
#10 0x011a0c82 in x_set_frame_parameters (f=0x35a1000, alist=50116634)
     at frame.c:2924
	param_index = 80
	old_value = 50116634
	prop = 50327154
	val = 4
	tail = 50116634
	width = 10
	height = 10
	left = 50116610
	top = 50116610
	icon_left = 50116610
	icon_top = 50116610
	parms = (Lisp_Object *) 0x82eda0
	values = (Lisp_Object *) 0x82ed80
	i = 0
	p = 1
	left_no_change = 0
	top_no_change = 0
	icon_left_no_change = 0
	icon_top_no_change = 0
	size_changed = 0
	gcpro1 = {
   next = 0x2fcb81a,
   var = 0xb,
   nvars = 1
}
	gcpro2 = {
   next = 0xfa4,
   var = 0x35a5000,
   nvars = 1
}
#11 0x011a2f71 in x_default_parameter (f=0x35a1000, alist=50097526,
     prop=50327154, deflt=4, xprop=0x0, xclass=0x0, type=RES_TYPE_NUMBER)
     at frame.c:3929
	tem = 4
#12 0x01173d04 in Fx_create_frame (parameters=50097526) at w32fns.c:4249
	f = (struct frame *) 0x35a1000
	frame = 56233989
	tem = 50116610
	name = 50116610
	minibuffer_only = 0
	window_prompting = 0
	width = 50097702
	height = 50097702
	count = 16
	gcpro1 = {
   next = 0x12,
   var = 0x2fc6e26,
   nvars = 12
}
	gcpro2 = {
   next = 0x3020938,
   var = 0x82f700,
   nvars = 8580984
}
	gcpro3 = {
   next = 0x4,
   var = 0x1228348,
   nvars = 135
}
	gcpro4 = {
   next = 0x82f130,
   var = 0x12ab9d1,
   nvars = 20291274
}
	display = 50116634
	dpyinfo = (struct w32_display_info *) 0x14236c0
	parent = 50116634
	kb = (struct kboard *) 0x3498080
#13 0x01022853 in Ffuncall (nargs=2, args=0x82f020) at eval.c:2966
	fun = 20687397
	original_fun = 50367354
	funcar = 21052936
	numargs = 1
	lisp_numargs = 8716288
	val = 50097702
	backtrace = {
   next = 0x82f200,
   function = 0x82f020,
   args = 0x82f024,
   nargs = 1,
   debug_on_exit = 0
}
	internal_args = (Lisp_Object *) 0x82f024
	i = 8717832
#14 0x010c92eb in exec_byte_code (bytestr=19252057, vector=19252077,
     maxdepth=16, args_template=50116634, nargs=0, args=0x0) at bytecode.c:785
	count = 11
	op = 1
	vectorp = (Lisp_Object *) 0x125c370
	stack = {
   pc = 0x138ee0f "\024\316\216\317\f!\210\320\f\b\"\210\321\f\322\"\210\323\f\b\"\210\n\204W",
   byte_string = 19252057,
   byte_string_start = 0x138edd9 "\306\b!\020\307\b!\031\310\b\236\032\311\033\312\211\034\035\v\312\036\026\211\036\027\2030",
   constants = 19252077,
   next = 0x82f380
}
	top = (Lisp_Object *) 0x82f020
	result = 8581528
#15 0x01023172 in funcall_lambda (fun=19252021, nargs=1, arg_vector=0x82f264)
     at eval.c:3197
	val = 54215898
	syms_left = 50116634
	next = 50486706
	lexenv = 50116634
	count = 10
	i = 1
	optional = 1
	rest = 0
#16 0x01022a70 in Ffuncall (nargs=2, args=0x82f260) at eval.c:3015
	fun = 19252021
	original_fun = 50677722
	funcar = 1
	numargs = 1
	lisp_numargs = 16878580
	val = 50116634
	backtrace = {
   next = 0x82f450,
   function = 0x82f260,
   args = 0x82f264,
   nargs = 1,
   debug_on_exit = 0
}
	internal_args = (Lisp_Object *) 0x2fcb81a
	i = 16878548
#17 0x010c92eb in exec_byte_code (bytestr=19577001, vector=19577021,
     maxdepth=20, args_template=50116634, nargs=0, args=0x0) at bytecode.c:785
	count = 5
	op = 1
	vectorp = (Lisp_Object *) 0x12ab8c0
	stack = {
   pc = 0x1359ff6 "\026\027\320\016\027!\210\016\035\311\036\036\211\036\037\203\354",
   byte_string = 19577001,
   byte_string_start = 0x1359f46 "\306\b\236\203,",
   constants = 19577021,
   next = 0x82f5d0
}
	top = (Lisp_Object *) 0x82f260
	result = 50097830
#18 0x01023172 in funcall_lambda (fun=19576973, nargs=1, arg_vector=0x82f4b4)
     at eval.c:3197
	val = 50097830
	syms_left = 50116634
	next = 50486706
	lexenv = 50116634
	count = 4
	i = 1
	optional = 1
	rest = 0
#19 0x01022a70 in Ffuncall (nargs=2, args=0x82f4b0) at eval.c:3015
	fun = 19576973
	original_fun = 50722298
	funcar = 2010802769
	numargs = 1
	lisp_numargs = 16878580
	val = 8582296
	backtrace = {
   next = 0x82f6a0,
   function = 0x82f4b0,
   args = 0x82f4b4,
   nargs = 1,
   debug_on_exit = 0
}
	internal_args = (Lisp_Object *) 0x2ffe2d2
	i = 16878548
#20 0x010c92eb in exec_byte_code (bytestr=19574297, vector=19574317,
     maxdepth=24, args_template=50116634, nargs=0, args=0x0) at bytecode.c:785
	count = 4
	op = 1
	vectorp = (Lisp_Object *) 0x12aae30
	stack = {
   pc = 0x135a881 "\211\026\024\026\025\317\v!\023\320\016\024\321\322\n\321\"#\210\323\n!\210\312\211\022\207",
   byte_string = 19574297,
   byte_string_start = 0x135a850 "\b\205K",
   constants = 19574317,
   next = 0x82f850
}
	top = (Lisp_Object *) 0x82f4b0
	result = 1919906674
#21 0x01023172 in funcall_lambda (fun=19574269, nargs=0, arg_vector=0x82f704)
     at eval.c:3197
	val = 50116634
	syms_left = 50116634
	next = 50116634
	lexenv = 50116634
	count = 4
	i = 0
	optional = 0
	rest = 0
#22 0x01022a70 in Ffuncall (nargs=1, args=0x82f700) at eval.c:3015
	fun = 19574269
	original_fun = 50805194
	funcar = 19070729
	numargs = 0
	lisp_numargs = 17008440
	val = 50116634
	backtrace = {
   next = 0x82f920,
   function = 0x82f700,
   args = 0x82f704,
   nargs = 0,
   debug_on_exit = 0
}
	internal_args = (Lisp_Object *) 0x82f660
	i = 4
#23 0x010c92eb in exec_byte_code (bytestr=19271889, vector=19271909,
     maxdepth=72, args_template=0, nargs=0, args=0x82f988) at bytecode.c:785
	count = 4
	op = 0
	vectorp = (Lisp_Object *) 0x12610e8
	stack = {
   pc = 0x138c05c "\210\201\210",
   byte_string = 19271889,
   byte_string_start = 0x138bdb0 "\306 \020\307\021\n\023\307\024\310\311!\211\307=\2040",
   constants = 19271909,
   next = 0x82faa0
}
	top = (Lisp_Object *) 0x82f700
	result = 7
#24 0x01022ebb in funcall_lambda (fun=19271861, nargs=0, arg_vector=0x82f988)
     at eval.c:3131
	val = 5
	syms_left = 0
	next = 51291237
	lexenv = 51291232
	count = 4
	i = 20
	optional = 16934031
	rest = 8583384
#25 0x01022a70 in Ffuncall (nargs=1, args=0x82f984) at eval.c:3015
	fun = 19271861
	original_fun = 50804834
	funcar = 50155520
	numargs = 0
	lisp_numargs = 16878580
	val = 51291237
	backtrace = {
   next = 0x82fc90,
   function = 0x82f984,
   args = 0x82f988,
   nargs = 0,
   debug_on_exit = 0
}
	internal_args = (Lisp_Object *) 0x34211ce
	i = 16878548
#26 0x010c92eb in exec_byte_code (bytestr=19269065, vector=19269085,
     maxdepth=32, args_template=0, nargs=0, args=0x82fb40) at bytecode.c:785
	count = 3
	op = 0
	vectorp = (Lisp_Object *) 0x12605e0
	stack = {
   pc = 0x138ccf0 "\210)\210\346\347\350\"\210\351\317\352\"\211;\203\240",
   byte_string = 19269065,
   byte_string_start = 0x138cc69 "\b\203\b",
   constants = 19269085,
   next = 0x0
}
	top = (Lisp_Object *) 0x82f984
	result = 1
#27 0x01022ebb in funcall_lambda (fun=19269037, nargs=0, arg_vector=0x82fb40)
     at eval.c:3131
	val = 2090035902
	syms_left = 0
	next = 2090035780
	lexenv = 8584188
	count = 3
	i = 8747888
	optional = 8716288
	rest = 2090328276
#28 0x01022cff in apply_lambda (fun=19269037, args=50116634) at eval.c:3074
	args_left = 50116634
	i = 0
	numargs = 0
	arg_vector = (Lisp_Object *) 0x82fb40
	gcpro1 = {
   next = 0x0,
   var = 0xe00021a,
   nvars = 0
}
	gcpro2 = {
   next = 0x0,
   var = 0x8585e8,
   nvars = 0
}
	gcpro3 = {
   next = 0x0,
   var = 0x857b70,
   nvars = 0
}
	tem = 0
	sa_count = 3
	sa_must_free = 0
#29 0x01021838 in eval_sub (form=50726046) at eval.c:2359
	fun = 19269037
	val = 0
	original_fun = 50803338
	original_args = 50116634
	funcar = 1
	backtrace = {
   next = 0x0,
   function = 0x82fcc4,
   args = 0x82fb40,
   nargs = 0,
   debug_on_exit = 0
}
	gcpro1 = {
   next = 0x1404f30,
   var = 0x7c91253a,
   nvars = 2009277088
}
	gcpro2 = {
   next = 0x852918,
   var = 0x2fcb81a,
   nvars = 3
}
	gcpro3 = {
   next = 0x1404f30,
   var = 0x2fcb81a,
   nvars = 50155520
}
#30 0x0102107c in Feval (form=50726046, lexical=50116634) at eval.c:2168
	count = 2
#31 0x01004699 in top_level_2 () at keyboard.c:1166
No locals.
#32 0x0101feb1 in internal_condition_case (bfun=0x100467d <top_level_2>,
     handlers=50174362, hfun=0x10042fc <cmd_error>) at eval.c:1491
	val = 8726808
	c = {
   tag = 50116634,
   val = 50116634,
   next = 0x82fe10,
   gcpro = 0x0,
   jmp = {8584664, 2147336192, 32, 18, 8584460, 16907849, 8585184, 0, 8584712,
     3, 1, 8584724, 2009071717, 0, 1, 10701912},
   backlist = 0x0,
   handlerlist = 0x0,
   lisp_eval_depth = 0,
   pdlcount = 2,
   poll_suppress_count = 0,
   interrupt_input_blocked = 0,
   byte_stack = 0x0
}
	h = {
   handler = 50174362,
   var = 50116634,
   chosen_clause = 8584720,
   tag = 0x82fd50,
   next = 0x0
}
#33 0x010046cb in top_level_1 (ignore=50116634) at keyboard.c:1174
No locals.
#34 0x0101f987 in internal_catch (tag=50172386, func=0x100469b <top_level_1>,
     arg=50116634) at eval.c:1248
	c = {
   tag = 50172386,
   val = 50116634,
   next = 0x0,
   gcpro = 0x0,
   jmp = {8584840, 2147336192, 32, 18, 8584700, 16906616, 8585184, 0, 6619258,
     50116634, 3, 50155520, 21061384, 655360, 196613, 8584924},
   backlist = 0x0,
   handlerlist = 0x0,
   lisp_eval_depth = 0,
   pdlcount = 2,
   poll_suppress_count = 0,
   interrupt_input_blocked = 0,
   byte_stack = 0x0
}
#35 0x01004606 in command_loop () at keyboard.c:1129
No locals.
#36 0x01003f32 in recursive_edit_1 () at keyboard.c:756
	count = 1
	val = 63
#37 0x0100407c in Frecursive_edit () at keyboard.c:820
	count = 0
	buffer = 50116634
#38 0x0100275e in main (argc=1, argv=0xa327b8) at emacs.c:1704
	dummy = 18961200
	stack_bottom_variable = 1 '\001'
	do_initial_setlocale = 1
	skip_args = 0
	no_loadup = 0
	junk = 0x0
	dname_arg = 0x0
	ch_to_dir = 0x77be2850 "\377\377\377\377"

Lisp Backtrace:
"x-create-frame" (0x82f024)
"x-create-frame-with-faces" (0x82f264)
"make-frame" (0x82f4b4)
"frame-initialize" (0x82f704)
"command-line" (0x82f988)
"normal-top-level" (0x82fb40)
(gdb)




^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Abort when creating frame
  2011-09-05 16:47 Abort when creating frame martin rudalics
@ 2011-09-05 17:22 ` Eli Zaretskii
  2011-09-05 17:32   ` Eli Zaretskii
  0 siblings, 1 reply; 19+ messages in thread
From: Eli Zaretskii @ 2011-09-05 17:22 UTC (permalink / raw)
  To: martin rudalics; +Cc: emacs-devel

> Date: Mon, 05 Sep 2011 18:47:23 +0200
> From: martin rudalics <rudalics@gmx.at>
> 
> I get the backtraces below.
> 
> It might be related to a change I introduced back in June: I now (#8)
> run_window_configuration_change_hook when doing x_set_tool_bar_lines
> something we didn't do earlier.

I don't think so.  It's something more weird, see below.

> #1  0x011e5ef1 in bidi_initialize () at bidi.c:762

This crashes here:

  bidi_mirror_table = uniprop_table (intern ("mirroring"));
  if (NILP (bidi_mirror_table))
    abort ();    <<<<<<<<<<<<<<<<<<<<<<<

It should never happen that uniprop_table returns nil.  Something is
badly broken in the build.

Was this during startup, when Emacs was creating its first frame?
Because otherwise, I don't understand how come it called
bidi_initialize at this time: it should be called whenever the first
redisplay cycle, ever, is entered, which happens during startup.

If I can reproduce this, I will take a look.



^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Abort when creating frame
  2011-09-05 17:22 ` Eli Zaretskii
@ 2011-09-05 17:32   ` Eli Zaretskii
  2011-09-05 17:57     ` martin rudalics
  0 siblings, 1 reply; 19+ messages in thread
From: Eli Zaretskii @ 2011-09-05 17:32 UTC (permalink / raw)
  To: rudalics, emacs-devel

> Date: Mon, 05 Sep 2011 20:22:35 +0300
> From: Eli Zaretskii <eliz@gnu.org>
> Cc: emacs-devel@gnu.org
> 
> If I can reproduce this, I will take a look.

Nope, cannot reproduce this.  Emacs starts OK for me, and displays
both the initial frame and HELLO correctly.  If I set a breakpoint in
bidi_initialize, I see a non-nil value being returned by
uniprop_table.

Do you have a good uni-mirrored.el file in lisp/international?  What
is its size?  Could it be that bootstrapping somehow messed up that
file?




^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Abort when creating frame
  2011-09-05 17:32   ` Eli Zaretskii
@ 2011-09-05 17:57     ` martin rudalics
  2011-09-05 19:29       ` Eli Zaretskii
  0 siblings, 1 reply; 19+ messages in thread
From: martin rudalics @ 2011-09-05 17:57 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: emacs-devel

 > Nope, cannot reproduce this.  Emacs starts OK for me, and displays
 > both the initial frame and HELLO correctly.  If I set a breakpoint in
 > bidi_initialize, I see a non-nil value being returned by
 > uniprop_table.

It comes up normally here too and I can view HELLO.  But it aborts when
run under the debugger.

 > Do you have a good uni-mirrored.el file in lisp/international?  What
 > is its size?

No idea.  It has 9342 bytes.

 > Could it be that bootstrapping somehow messed up that
 > file?

How would I tell?

martin



^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Abort when creating frame
  2011-09-05 17:57     ` martin rudalics
@ 2011-09-05 19:29       ` Eli Zaretskii
  2011-09-05 20:07         ` Eli Zaretskii
  2011-09-05 20:26         ` martin rudalics
  0 siblings, 2 replies; 19+ messages in thread
From: Eli Zaretskii @ 2011-09-05 19:29 UTC (permalink / raw)
  To: martin rudalics; +Cc: emacs-devel

> Date: Mon, 05 Sep 2011 19:57:37 +0200
> From: martin rudalics <rudalics@gmx.at>
> CC: emacs-devel@gnu.org
> 
>  > Nope, cannot reproduce this.  Emacs starts OK for me, and displays
>  > both the initial frame and HELLO correctly.  If I set a breakpoint in
>  > bidi_initialize, I see a non-nil value being returned by
>  > uniprop_table.
> 
> It comes up normally here too and I can view HELLO.  But it aborts when
> run under the debugger.

Under the debugger, does it abort before completely displaying the
initial frame?  Or is that frame already displayed when it aborts?

Also, what version of the debugger do you have?

And how did you configure Emacs? what options to configure.bat did you
use?

>  > Do you have a good uni-mirrored.el file in lisp/international?  What
>  > is its size?
> 
> No idea.  It has 9342 bytes.

That's the size I have here.

>  > Could it be that bootstrapping somehow messed up that
>  > file?
> 
> How would I tell?

Recreate it?

I'm bootstrapping a clean tree and will see if I can find out
something that way.



^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Abort when creating frame
  2011-09-05 19:29       ` Eli Zaretskii
@ 2011-09-05 20:07         ` Eli Zaretskii
  2011-09-05 20:26         ` martin rudalics
  1 sibling, 0 replies; 19+ messages in thread
From: Eli Zaretskii @ 2011-09-05 20:07 UTC (permalink / raw)
  To: rudalics, emacs-devel

> Date: Mon, 05 Sep 2011 22:29:51 +0300
> From: Eli Zaretskii <eliz@gnu.org>
> Cc: emacs-devel@gnu.org
> 
> I'm bootstrapping a clean tree and will see if I can find out
> something that way.

No cigar, a fresh bootstrapped build works both with and without the
debugger.

What unusual things did you have there?  Is that "emacs -Q", or is
some customizations involved?



^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Abort when creating frame
  2011-09-05 19:29       ` Eli Zaretskii
  2011-09-05 20:07         ` Eli Zaretskii
@ 2011-09-05 20:26         ` martin rudalics
  2011-09-06  2:52           ` Eli Zaretskii
  1 sibling, 1 reply; 19+ messages in thread
From: martin rudalics @ 2011-09-05 20:26 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: emacs-devel

 > Under the debugger, does it abort before completely displaying the
 > initial frame?  Or is that frame already displayed when it aborts?

No initial frame shown.

 > Also, what version of the debugger do you have?

GNU gdb 6.8.

 > And how did you configure Emacs? what options to configure.bat did you
 > use?

configure --no-opt --without-xpm --without-png --without-jpeg --without-tiff --without-gif

 >>  > Could it be that bootstrapping somehow messed up that
 >>  > file?
 >>
 >> How would I tell?
 >
 > Recreate it?

I get the same behavior with a build from about two weeks ago and a
correspondingly different file.

martin



^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Abort when creating frame
  2011-09-05 20:26         ` martin rudalics
@ 2011-09-06  2:52           ` Eli Zaretskii
  2011-09-06  6:57             ` martin rudalics
  0 siblings, 1 reply; 19+ messages in thread
From: Eli Zaretskii @ 2011-09-06  2:52 UTC (permalink / raw)
  To: martin rudalics; +Cc: emacs-devel

> Date: Mon, 05 Sep 2011 22:26:34 +0200
> From: martin rudalics <rudalics@gmx.at>
> CC: emacs-devel@gnu.org
> 
>  > Under the debugger, does it abort before completely displaying the
>  > initial frame?  Or is that frame already displayed when it aborts?
> 
> No initial frame shown.

OK, at least this is as expected.

>  > Also, what version of the debugger do you have?
> 
> GNU gdb 6.8.

Perhaps upgrade to a later version (7.3 is already available from
MinGW site).

> I get the same behavior with a build from about two weeks ago and a
> correspondingly different file.

Again, only under GDB?

Does it help to load uni-mirrored.el explicitly, as in "run -l
../lisp/international/uni-mirrored.el" from GDB prompt to run Emacs
(assuming you run GDB from the src directory)?

Anyway, it looks like Emacs is unable to load uni-mirrored.el, I get
the same crash if I rename the file.  So perhaps put a breakpoint in
Fload and see what's going on there when it tries to load
uni-mirrored.el.



^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Abort when creating frame
  2011-09-06  2:52           ` Eli Zaretskii
@ 2011-09-06  6:57             ` martin rudalics
  2011-09-06  7:09               ` Eli Zaretskii
  0 siblings, 1 reply; 19+ messages in thread
From: martin rudalics @ 2011-09-06  6:57 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: emacs-devel

 >> I get the same behavior with a build from about two weeks ago and a
 >> correspondingly different file.
 >
 > Again, only under GDB?

Yes.  I get a crash with a certain scenario and in order to investigate
that crash I want to run emacs under the debugger.  Unfortunately, I do
not get very far there.

 > Does it help to load uni-mirrored.el explicitly, as in "run -l
 > ../lisp/international/uni-mirrored.el" from GDB prompt to run Emacs
 > (assuming you run GDB from the src directory)?

gdb --args c:/emacs/quickfixes/bin/emacs.exe -l c:/emacs/quickfixes/lisp/international/uni-mirrored.el

or

gdb --args c:/emacs/quickfixes/bin/emacs.exe -l ../lisp/international/uni-mirrored.el

give the same backtrace.

 > Anyway, it looks like Emacs is unable to load uni-mirrored.el, I get
 > the same crash if I rename the file.  So perhaps put a breakpoint in
 > Fload and see what's going on there when it tries to load
 > uni-mirrored.el.

How?  I don't know when it tries to load uni-mirrored.el.

martin



^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Abort when creating frame
  2011-09-06  6:57             ` martin rudalics
@ 2011-09-06  7:09               ` Eli Zaretskii
  2011-09-06  9:22                 ` martin rudalics
  0 siblings, 1 reply; 19+ messages in thread
From: Eli Zaretskii @ 2011-09-06  7:09 UTC (permalink / raw)
  To: martin rudalics; +Cc: emacs-devel

> Date: Tue, 06 Sep 2011 08:57:29 +0200
> From: martin rudalics <rudalics@gmx.at>
> CC: emacs-devel@gnu.org
> 
>  > Anyway, it looks like Emacs is unable to load uni-mirrored.el, I get
>  > the same crash if I rename the file.  So perhaps put a breakpoint in
>  > Fload and see what's going on there when it tries to load
>  > uni-mirrored.el.
> 
> How?  I don't know when it tries to load uni-mirrored.el.

Like this:

 (gdb) break bidi_iniialize
 (gdb) r -Q

When this breakpoint breaks, step through bidi_iniialize until you get
to the 2nd uniprop_table call.  Then type at GDB prompt:

 (gdb) break Fload
 (gdb) continue

The next break in Fload should show that Emacs is loading
uni-mirrored.el.  You can verify that once Fload breaks like this:

 (gdb) pp file

Then step through Fload and see which line fails there.

Note that in order for "pp" to work, you will need to start GDB in the
src directory.  But you probably already know that.



^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Abort when creating frame
  2011-09-06  7:09               ` Eli Zaretskii
@ 2011-09-06  9:22                 ` martin rudalics
  2011-09-06  9:48                   ` Eli Zaretskii
  0 siblings, 1 reply; 19+ messages in thread
From: martin rudalics @ 2011-09-06  9:22 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: emacs-devel

I did

(gdb) break bidi.c:760

and after hitting it

(gdb) break lread.c:1250

getting me

Breakpoint 4, Fload (file=55364081, noerror=50116658, nomessage=50116658,
     nosuffix=50116658, must_suffix=50116634) at lread.c:1250

Apparently I enter the call4 below

	  val = call4 (Vload_source_file_function, found, hist_file_name,
		       NILP (noerror) ? Qnil : Qt,
		       (NILP (nomessage) || force_load_messages) ? Qnil : Qt);
	  return unbind_to (count, val);

and after that return.

 > Note that in order for "pp" to work, you will need to start GDB in the
 > src directory.  But you probably already know that.

(gdb) pp file

never prints anything here.

martin



^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Abort when creating frame
  2011-09-06  9:22                 ` martin rudalics
@ 2011-09-06  9:48                   ` Eli Zaretskii
  2011-09-06 12:23                     ` martin rudalics
  0 siblings, 1 reply; 19+ messages in thread
From: Eli Zaretskii @ 2011-09-06  9:48 UTC (permalink / raw)
  To: martin rudalics; +Cc: emacs-devel

> Date: Tue, 06 Sep 2011 11:22:41 +0200
> From: martin rudalics <rudalics@gmx.at>
> CC: emacs-devel@gnu.org
> 
> (gdb) break lread.c:1250
> 
> getting me
> 
> Breakpoint 4, Fload (file=55364081, noerror=50116658, nomessage=50116658,
>      nosuffix=50116658, must_suffix=50116634) at lread.c:1250
> 
> Apparently I enter the call4 below
> 
> 	  val = call4 (Vload_source_file_function, found, hist_file_name,
> 		       NILP (noerror) ? Qnil : Qt,
> 		       (NILP (nomessage) || force_load_messages) ? Qnil : Qt);
> 	  return unbind_to (count, val);
> 
> and after that return.

What is the value of Vload_source_file_function?  If it's
load-with-code-conversion (as I think it should be), then either add
(message foo) printouts in load-with-code-conversion and see what
happens there, or put a breakpoint in Finsert_file_contents, which
load-with-code-conversion eventually calls, and see why that fails.

>  > Note that in order for "pp" to work, you will need to start GDB in the
>  > src directory.  But you probably already know that.
> 
> (gdb) pp file
> 
> never prints anything here.

If this is after you invoked Emacs from GDB (as opposed to attaching
to a running program), then I guess it's a bug in that old port of GDB
you are using.  It works for me in v7.2.

Anyway, you can use this less convenient method instead:

 (gdb) p file
 (gdb) xstring

(This assumes that `file' is a Lisp string.  There's `xtype' to show
the type.)



^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Abort when creating frame
  2011-09-06  9:48                   ` Eli Zaretskii
@ 2011-09-06 12:23                     ` martin rudalics
  2011-09-06 12:30                       ` martin rudalics
  2011-09-06 16:57                       ` Eli Zaretskii
  0 siblings, 2 replies; 19+ messages in thread
From: martin rudalics @ 2011-09-06 12:23 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: emacs-devel

 > ... or put a breakpoint in Finsert_file_contents, which
 > load-with-code-conversion eventually calls, and see why that fails.

Fine.  I now know what happens but don't understand why.  I'm running
the debugger from an older emacs and `insert-file-contents' loads
uni-mirrored.el from the directory of _that_ emacs.  This also explains
why I see the abort only when running under gdb.  If I run gdb from the
new emacs, the debugged emacs starts as expected.

Thanks for helping so far, but I suppose something must be fixed here.

martin



^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Abort when creating frame
  2011-09-06 12:23                     ` martin rudalics
@ 2011-09-06 12:30                       ` martin rudalics
  2011-09-06 16:57                       ` Eli Zaretskii
  1 sibling, 0 replies; 19+ messages in thread
From: martin rudalics @ 2011-09-06 12:30 UTC (permalink / raw)
  To: martin rudalics; +Cc: Eli Zaretskii, emacs-devel

> Thanks for helping so far, but I suppose something must be fixed here.

... unless the bug is in my gdb, obviously.  In that case we probably
should strongly warn people to use such a version.

martin



^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Abort when creating frame
  2011-09-06 12:23                     ` martin rudalics
  2011-09-06 12:30                       ` martin rudalics
@ 2011-09-06 16:57                       ` Eli Zaretskii
  2011-09-06 18:44                         ` martin rudalics
  1 sibling, 1 reply; 19+ messages in thread
From: Eli Zaretskii @ 2011-09-06 16:57 UTC (permalink / raw)
  To: martin rudalics; +Cc: emacs-devel

> Date: Tue, 06 Sep 2011 14:23:29 +0200
> From: martin rudalics <rudalics@gmx.at>
> Cc: emacs-devel@gnu.org
> 
> I now know what happens but don't understand why.  I'm running the
> debugger from an older emacs and `insert-file-contents' loads
> uni-mirrored.el from the directory of _that_ emacs.  This also
> explains why I see the abort only when running under gdb.  If I run
> gdb from the new emacs, the debugged emacs starts as expected.

This is a feature ;-)  You will see in w32.c that Emacs sets
EMACSLOADPATH in the environment to the path it creates from known
directories, in order to set load-path correctly.  And GDB probably
inherits that exports it to the Emacs being debugged...

We define EMACSLOADPATH in the environment because the Windows build
doesn't want to depend on PATH_LOADSEARCH macro being set at build
time (in epaths.h), since the compiled binary needs to be able to run
on a different machine.  See init_lread.

Perhaps we should remove EMACSLOADPATH from process-environment when
we run inferior subprocesses?



^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Abort when creating frame
  2011-09-06 16:57                       ` Eli Zaretskii
@ 2011-09-06 18:44                         ` martin rudalics
  2011-09-07 16:50                           ` Eli Zaretskii
  0 siblings, 1 reply; 19+ messages in thread
From: martin rudalics @ 2011-09-06 18:44 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: emacs-devel

 > This is a feature ;-)  You will see in w32.c that Emacs sets
 > EMACSLOADPATH in the environment to the path it creates from known
 > directories, in order to set load-path correctly.  And GDB probably
 > inherits that exports it to the Emacs being debugged...
 >
 > We define EMACSLOADPATH in the environment because the Windows build
 > doesn't want to depend on PATH_LOADSEARCH macro being set at build
 > time (in epaths.h), since the compiled binary needs to be able to run
 > on a different machine.  See init_lread.

It's obvious to me now but it was absolutely confusing initially.

 > Perhaps we should remove EMACSLOADPATH from process-environment when
 > we run inferior subprocesses?

Some help for cross-debugging would be needed.  A minute ago my
debugging emacs crashed on an already crashed debugged emacs.

martin



^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Abort when creating frame
  2011-09-06 18:44                         ` martin rudalics
@ 2011-09-07 16:50                           ` Eli Zaretskii
  2011-09-07 18:30                             ` martin rudalics
  0 siblings, 1 reply; 19+ messages in thread
From: Eli Zaretskii @ 2011-09-07 16:50 UTC (permalink / raw)
  To: martin rudalics; +Cc: emacs-devel

> Date: Tue, 06 Sep 2011 20:44:12 +0200
> From: martin rudalics <rudalics@gmx.at>
> CC: emacs-devel@gnu.org
> 
> Some help for cross-debugging would be needed.

Does it help to say "unset environment EMACSLOADPATH" at the GDB
prompt, before starting Emacs under the debugger?



^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Abort when creating frame
  2011-09-07 16:50                           ` Eli Zaretskii
@ 2011-09-07 18:30                             ` martin rudalics
  2011-09-07 18:54                               ` Eli Zaretskii
  0 siblings, 1 reply; 19+ messages in thread
From: martin rudalics @ 2011-09-07 18:30 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: emacs-devel

 > Does it help to say "unset environment EMACSLOADPATH" at the GDB
 > prompt, before starting Emacs under the debugger?

I'm afraid not:


Current directory is c:/emacs/quickfixes/src/
GNU gdb 6.8
Copyright (C) 2008 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "i686-pc-mingw32"...
SIGINT is used by the debugger.
Are you sure you want to change it? (y or n) [answered Y; input not from terminal]
DISPLAY =
TERM = emacs
(gdb) unset environment EMACSLOADPATH
(gdb) run -Q
Starting program: c:/emacs/quickfixes/bin/emacs.exe -Q
[New thread 1356.0x66c]
[New thread 1356.0x218]

Breakpoint 1, w32_abort () at w32fns.c:7182
7182	  button = MessageBox (NULL,
(gdb)


martin



^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: Abort when creating frame
  2011-09-07 18:30                             ` martin rudalics
@ 2011-09-07 18:54                               ` Eli Zaretskii
  0 siblings, 0 replies; 19+ messages in thread
From: Eli Zaretskii @ 2011-09-07 18:54 UTC (permalink / raw)
  To: martin rudalics; +Cc: emacs-devel

> Date: Wed, 07 Sep 2011 20:30:58 +0200
> From: martin rudalics <rudalics@gmx.at>
> CC: emacs-devel@gnu.org
> 
>  > Does it help to say "unset environment EMACSLOADPATH" at the GDB
>  > prompt, before starting Emacs under the debugger?
> 
> I'm afraid not:

What does "show environment" print after the unset command?



^ permalink raw reply	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2011-09-07 18:54 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-09-05 16:47 Abort when creating frame martin rudalics
2011-09-05 17:22 ` Eli Zaretskii
2011-09-05 17:32   ` Eli Zaretskii
2011-09-05 17:57     ` martin rudalics
2011-09-05 19:29       ` Eli Zaretskii
2011-09-05 20:07         ` Eli Zaretskii
2011-09-05 20:26         ` martin rudalics
2011-09-06  2:52           ` Eli Zaretskii
2011-09-06  6:57             ` martin rudalics
2011-09-06  7:09               ` Eli Zaretskii
2011-09-06  9:22                 ` martin rudalics
2011-09-06  9:48                   ` Eli Zaretskii
2011-09-06 12:23                     ` martin rudalics
2011-09-06 12:30                       ` martin rudalics
2011-09-06 16:57                       ` Eli Zaretskii
2011-09-06 18:44                         ` martin rudalics
2011-09-07 16:50                           ` Eli Zaretskii
2011-09-07 18:30                             ` martin rudalics
2011-09-07 18:54                               ` Eli Zaretskii

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).