emacs-pretest-bug
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: tooltip/widget/sit-for related crash


From: Andreas Seltenreich
Subject: Re: tooltip/widget/sit-for related crash
Date: Sat, 26 Aug 2006 18:39:16 +0200
User-agent: Gnus/5.110006 (No Gnus v0.6) Emacs/22.0.50 (gnu/linux)

Richard Stallman <address@hidden> writes:

>     #24 0x080cc3d7 in x_wm_set_size_hint (f=0x0, flags=2, 
> user_position=-1075527256) at xterm.c:9181
>           size_hints = {  
>
>
> Was f really 0 when this function was called?  (You can check by
> looking at data in the calling function.)  If so, that was surely
> incorrect, so please try to debug why the caller passed 0 for f.

Richard Stallman <address@hidden> writes:

>     Problem is that the stack backtrace is broken after that frame, so
>     we don't know the caller...  (unless someone can figure out
>     the sequence of calls from the xbacktrace)...
>
> Manual examination of the stack might make it possible to find another
> stack frame further up.  It is important to do that if nothing else
> finds the bug.

A couple bytes further down frame #24 I found a pointer into
x_set_window_size() which looks very promising:

--8<---------------cut here---------------start------------->8---
(gdb) info line **0xbfe4c29c
Line 8436 of "xterm.c" starts at address 0x80ce5ce <x_set_window_size+382> and 
ends at 0x80ce5eb <x_set_window_size+411>.
(gdb) list "xterm.c":8436
8431      pixelheight = FRAME_TEXT_LINES_TO_PIXEL_HEIGHT (f, rows);
8432
8433      f->win_gravity = NorthWestGravity;
8434      x_wm_set_size_hint (f, (long) 0, 0);
8435
8436      XSync (FRAME_X_DISPLAY (f), False);
8437      XResizeWindow (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f),
8438                     pixelwidth, pixelheight);
8439
8440      /* Now, strictly speaking, we can't be sure that this is accurate,
--8<---------------cut here---------------end--------------->8---

Could this have been the actual return pointer of frame #24?  The
associated parameters would match the source much better than the ones
gdb presents:

--8<---------------cut here---------------start------------->8---
(gdb) x *(0xbfe4c29c+4)
0x13af5748:     0x40000455
(gdb) x *(0xbfe4c29c+8)
0x0:    Cannot access memory at address 0x0
(gdb) x *(0xbfe4c29c+12)
0x0:    Cannot access memory at address 0x0
(gdb) p *(struct frame *)*(0xbfe4c29c+4)
$76 = {
  size = 1073742933,
  next = 0x1381b768,
  name = 138272875,
  icon_name = 137492681,
  title = 137492681,
  focus_frame = 137492681,
  root_window = 269754668,
  selected_window = 269754668,
  minibuffer_window = 259287060,
  param_alist = 340405077,
  scroll_bars = 137492681,
  condemned_scroll_bars = 137492681,
  menu_bar_items = 137492681,
  face_alist = 137492681,
  menu_bar_vector = 137492681,
  menu_bar_items_used = 0,
  buffer_predicate = 137492681,
  buffer_list = 340409797,
  menu_bar_window = 137492681,
  tool_bar_window = 137492681,
  tool_bar_items = 137492681,
  desired_tool_bar_string = 137492681,
  current_tool_bar_string = 137492681,
  face_cache = 0x12249430,
  namebuf = 0x0,
  current_pool = 0x0,
  desired_pool = 0x0,
  desired_matrix = 0x0,
  current_matrix = 0x0,
  glyphs_initialized_p = 0,
  tool_bar_lines = 0,
  n_tool_bar_rows = 0,
  n_tool_bar_items = 0,
  decode_mode_spec_buffer = 0x0,
  insert_line_cost = 0x0,
  delete_line_cost = 0x0,
  insert_n_lines_cost = 0x0,
  delete_n_lines_cost = 0x0,
  text_lines = 0,
  text_cols = 0,
  total_lines = 0,
  total_cols = 3,
  new_text_lines = 40,
  new_text_cols = 80,
  left_pos = 0,
  top_pos = 0,
  pixel_height = 484,
  pixel_width = 502,
  x_pixels_diff = 0,
  y_pixels_diff = 0,
  win_gravity = 1,
  size_hint_flags = 0,
  border_width = 1,
  internal_border_width = 2,
  column_width = 6,
  space_width = 6,
  line_height = 12,
  output_method = output_x_window,
  output_data = {
    x = 0x128ad7f8,
    w32 = 0x128ad7f8,
    mac = 0x128ad7f8,
    nothing = 311089144
  },  
  fringe_cols = 3,
  left_fringe_width = 9,
  right_fringe_width = 9,
  kboard = 0x85de190,
  want_fullscreen = 0,
  menu_bar_lines = 0,
  external_menu_bar = 0,
  display_preempted = 0 '\0',
  visible = 0 '\0',
  iconified = 0 '\0',
  async_visible = 0 '\0',
  async_iconified = 0 '\0',
  garbaged = 1 '\001',
  has_minibuffer = 1 '\001',
  wants_modeline = 1 '\001',
  can_have_scroll_bars = 0 '\0',
  vertical_scroll_bar_type = vertical_scroll_bar_none,
  desired_cursor = FILLED_BOX_CURSOR,
  cursor_width = -1075526728,
  blink_off_cursor = DEFAULT_CURSOR,
  blink_off_cursor_width = 0,
  auto_raise = 0 '\0',
  auto_lower = 0 '\0',
  no_split = 0 '\0',
  explicit_name = 1 '\001',
  window_sizes_changed = 0 '\0',
  message_buf = 0x0,
  scroll_bottom_vpos = 0,
  config_scroll_bar_width = 0,
  config_scroll_bar_cols = 3,
  scroll_bar_actual_width = 0,
  cost_calculation_baud_rate = 0,
  mouse_moved = 0 '\0',
  gamma = 0,
  extra_line_spacing = 0,
  resized_p = 0,
  force_flush_display_p = 0,
  default_face_done_p = 0,
  already_hscrolled_p = 0,
  updated_p = 0
}
--8<---------------cut here---------------end--------------->8---

Thanks,
andreas




reply via email to

[Prev in Thread] Current Thread [Next in Thread]