[Top][All Lists]
[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