EShellSwitcher: Runtime warnings about negative content height
When I use evolution, several “Negative content width/height” warnings from gtk_css_gadget_allocate() are emited. Setting a breakpoint there, reveals this backtrace for the first occurrence:
Thread 1 "evolution" hit Breakpoint 2, gtk_css_gadget_allocate (gadget=0xba65e0 [GtkCssCustomGadget], allocation=allocation@entry=0x7fffffffd770, baseline=-1, out_clip=out_clip@entry=0x7fffffffd290) at ../gtk/gtkcssgadget.c:770
warning: Source file is more recent than executable.
770 g_warning ("Negative content width %d (allocation %d, extents %dx%d) "
Breakpoint 4 at 0x7ffff1435c60: file /src/gnome/webkitgtk-2.24.3/Source/WTF/wtf/SHA1.cpp, line 74.
#0 gtk_css_gadget_allocate (gadget=0xba65e0 [GtkCssCustomGadget], allocation=allocation@entry=0x7fffffffd770, baseline=-1, out_clip=out_clip@entry=0x7fffffffd290) at ../gtk/gtkcssgadget.c:770
priv = <optimized out>
content_allocation = {x = 6, y = 5, width = -11, height = -9}
tmp_clip = {x = 14732480, y = 0, width = -161046703, height = 32767}
content_clip = {x = 0, y = 0, width = 0, height = 0}
margin = {left = 0, right = 0, top = 0, bottom = 0}
border = {left = 1, right = 1, top = 1, bottom = 1}
padding = {left = 5, right = 5, top = 4, bottom = 4}
shadow = {left = -1, right = -1, top = 0, bottom = 0}
extents = {left = 6, right = 6, top = 5, bottom = 5}
style = 0x7fff34006e80 [GtkCssAnimatedStyle]
__func__ = "gtk_css_gadget_allocate"
#1 0x00007ffff64a651b in gtk_button_size_allocate (widget=0xb9f670 [GtkToggleButton], allocation=0x7fffffffd770) at ../gtk/gtkbutton.c:1766
button = <optimized out>
priv = 0xb9f4f0
clip = {x = -162896688, y = 32767, width = -185046135, height = 32767}
#5 0x00007ffff4fa0522 in <emit signal ??? on instance 0xb9f670 [GtkToggleButton]> (instance=instance@entry=0xb9f670, signal_id=<optimized out>, detail=detail@entry=0) at ../gobject/gsignal.c:3447
var_args = {{gp_offset = 32, fp_offset = 48, overflow_arg_area = 0x7fffffffd710, reg_save_area = 0x7fffffffd650}}
#2 0x00007ffff4f83ddd in g_closure_invoke (closure=0x49afd0, return_value=0x0, n_param_values=2, param_values=0x7fffffffd490, invocation_hint=0x7fffffffd430) at ../gobject/gclosure.c:810
marshal = 0x7ffff4f822c0 <g_type_class_meta_marshal>
marshal_data = 0xd8
in_marshal = 0
real_closure = 0x49afb0
__FUNCTION__ = "g_closure_invoke"
#3 0x00007ffff4f96f54 in signal_emit_unlocked_R (node=node@entry=0x48a630, detail=detail@entry=0, instance=instance@entry=0xb9f670, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7fffffffd490) at ../gobject/gsignal.c:3565
accumulator = 0x0
emission = {next = 0x7fffffffdc90, instance = 0xb9f670, ihint = {signal_id = 60, detail = 0, run_type = G_SIGNAL_RUN_FIRST}, state = EMISSION_RUN, chain_type = 0xc04960 [GtkToggleButton/GtkButton/GtkBin/GtkContainer/GtkWidget/GInitiallyUnowned]}
class_closure = 0x49afd0
hlist = <optimized out>
handler_list = <optimized out>
return_accu = 0x0
accu = {g_type = 0x0, data = {{v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}, {v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}}}
signal_id = 60
max_sequential_handler_number = 60610
return_value_altered = <optimized out>
#4 0x00007ffff4f9fe8e in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7fffffffd638) at ../gobject/gsignal.c:3391
instance_and_params = 0x7fffffffd490
signal_return_type = <optimized out>
param_values = 0x7fffffffd4a8
node = <optimized out>
i = <optimized out>
n_params = <optimized out>
__FUNCTION__ = "g_signal_emit_valist"
#6 0x00007ffff67226ef in gtk_widget_size_allocate_with_baseline (widget=widget@entry=0xb9f670 [GtkToggleButton], allocation=allocation@entry=0x7fffffffd7e0, baseline=<optimized out>, baseline@entry=-1) at ../gtk/gtkwidget.c:6170
priv = 0xb9f580
real_allocation = {x = 0, y = 0, width = 1, height = 1}
old_allocation = {x = -1, y = -1, width = 1, height = 1}
old_clip = {x = 0, y = 0, width = 0, height = 0}
adjusted_allocation = {x = 0, y = 0, width = 1, height = 1}
alloc_needed = <optimized out>
size_changed = 0
baseline_changed = 1
position_changed = 1
natural_width = 36
natural_height = 34
dummy = 0
min_width = 36
min_height = 34
old_baseline = <optimized out>
__func__ = "gtk_widget_size_allocate_with_baseline"
#7 0x00007ffff672272a in gtk_widget_size_allocate (widget=widget@entry=0xb9f670 [GtkToggleButton], allocation=allocation@entry=0x7fffffffd7e0) at ../gtk/gtkwidget.c:6253
#8 0x00007ffff66cb7fb in gtk_tool_item_size_allocate (widget=0x71a740 [GtkToggleToolButton], allocation=0x7fffffffd870) at ../gtk/gtktoolitem.c:534
toolitem = <optimized out>
child_allocation = {x = 0, y = 0, width = 1, height = 1}
child = 0xb9f670 [GtkToggleButton]
#9 0x00007ffff6722357 in gtk_widget_size_allocate_with_baseline (widget=widget@entry=0x71a740 [GtkToggleToolButton], allocation=allocation@entry=0x7fffffffd8f0, baseline=<optimized out>) at ../gtk/gtkwidget.c:6172
priv = 0x71a650
real_allocation = {x = 0, y = 0, width = 1, height = 1}
old_allocation = {x = -1, y = -1, width = 1, height = 1}
old_clip = {x = 0, y = 0, width = 0, height = 0}
adjusted_allocation = {x = 0, y = 0, width = 0, height = 0}
alloc_needed = <optimized out>
size_changed = 0
baseline_changed = 1
position_changed = 1
natural_width = 36
natural_height = 34
dummy = 0
min_width = 36
min_height = 34
old_baseline = <optimized out>
__func__ = "gtk_widget_size_allocate_with_baseline"
#10 0x00007ffff6721f9c in gtk_widget_ensure_allocate (widget=0x71a740 [GtkToggleToolButton]) at ../gtk/gtkwidget.c:16360
allocation = {x = 0, y = 0, width = 0, height = 0}
baseline = 0
priv = 0x71a650
#11 0x00007ffff4e9b9bd in g_list_foreach (list=<optimized out>, func=func@entry=0x7ffff6721ed0 <gtk_widget_ensure_allocate>, user_data=user_data@entry=0x0) at ../glib/glist.c:1013
next = 0x6213a0 = {0x71a940, 0x71ab40, 0x71ad40, 0x71af40}
#12 0x00007ffff7faf02e in shell_switcher_forall (container=0xba2160 [EShellSwitcher], include_internals=1, callback=0x7ffff6721ed0 <gtk_widget_ensure_allocate>, callback_data=0x0) at /git/gnome/evolution/src/shell/e-shell-switcher.c:430
priv = <optimized out>
#13 0x00007ffff6721f72 in gtk_widget_ensure_allocate (widget=0xba2160 [EShellSwitcher]) at ../gtk/gtkwidget.c:16367
priv = 0xba2070
#14 0x00007ffff65ff6a5 in gtk_paned_forall (container=<optimized out>, include_internals=<optimized out>, callback=0x7ffff6721ed0 <gtk_widget_ensure_allocate>, callback_data=0x0) at ../gtk/gtkpaned.c:2320
priv = 0x701270
paned = <optimized out>
__func__ = "gtk_paned_forall"
#15 0x00007ffff6721f72 in gtk_widget_ensure_allocate (widget=0x701420 [GtkPaned]) at ../gtk/gtkwidget.c:16367
priv = 0x701330
#16 0x00007ffff6498a00 in gtk_box_forall (container=<optimized out>, include_internals=<optimized out>, callback=0x7ffff6721ed0 <gtk_widget_ensure_allocate>, callback_data=0x0) at ../gtk/gtkbox.c:2675
box = <optimized out>
priv = 0x7169b0
child = <optimized out>
children = 0x61cb20 = {0x552790}
#17 0x00007ffff6721f72 in gtk_widget_ensure_allocate (widget=0x716ae0 [GtkBox]) at ../gtk/gtkwidget.c:16367
priv = 0x7169f0
#18 0x00007ffff6733089 in gtk_window_forall (container=0x7188b0 [EShellWindow], include_internals=1, callback=0x7ffff6721ed0 <gtk_widget_ensure_allocate>, callback_data=0x0) at ../gtk/gtkwindow.c:8592
window = <optimized out>
priv = 0x718650
child = <optimized out>
#19 0x00007ffff6721f72 in gtk_widget_ensure_allocate (widget=widget@entry=0x7188b0 [EShellWindow]) at ../gtk/gtkwidget.c:16367
priv = 0x7187c0
#20 0x00007ffff64e7780 in gtk_container_real_check_resize (container=0x7188b0 [EShellWindow]) at ../gtk/gtkcontainer.c:2210
widget = 0x7188b0 [EShellWindow]
allocation = {x = 0, y = 0, width = 7440560, height = 0}
requisition = {width = -186116256, height = 32767}
baseline = 0
#21 0x00007ffff4f84016 in _g_closure_invoke_va (closure=0x49af50, return_value=0x0, instance=0x7188b0, args=0x7fffffffdd48, n_params=0, param_types=0x0) at ../gobject/gclosure.c:873
marshal = 0x7ffff4f82220 <g_type_class_meta_marshalv>
marshal_data = 0x348
in_marshal = 0
real_closure = 0x49af30
__FUNCTION__ = "_g_closure_invoke_va"
#22 0x00007ffff4f9fef7 in g_signal_emit_valist (instance=0x7188b0, signal_id=<optimized out>, detail=0, var_args=var_args@entry=0x7fffffffdd48) at ../gobject/gsignal.c:3300
return_accu = <optimized out>
accu = {g_type = 0x0, data = {{v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}, {v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}}}
accumulator = 0x0
emission = {next = 0x7fffffffdf90, instance = 0x7188b0, ihint = {signal_id = 124, detail = 0, run_type = G_SIGNAL_RUN_LAST}, state = EMISSION_RUN, chain_type = 0x73bd20 [EShellWindow/GtkWindow/GtkBin/GtkContainer/GtkWidget/GInitiallyUnowned]}
signal_id = 124
instance_type = <optimized out>
emission_return = {g_type = 0x0, data = {{v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}, {v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}}}
rtype = 0x4 [void]
static_scope = 0
fastpath_handler = <optimized out>
closure = <optimized out>
run_type = <optimized out>
hlist = <optimized out>
l = <optimized out>
fastpath = 1
instance_and_params = <optimized out>
signal_return_type = <optimized out>
param_values = <optimized out>
node = <optimized out>
i = <optimized out>
n_params = <optimized out>
__FUNCTION__ = "g_signal_emit_valist"
#23 0x00007ffff4fa0522 in g_signal_emit (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>) at ../gobject/gsignal.c:3447
var_args = {{gp_offset = 24, fp_offset = 48, overflow_arg_area = 0x7fffffffde20, reg_save_area = 0x7fffffffdd60}}
#24 0x00007ffff64e7b20 in gtk_container_idle_sizer (clock=0x450690 [GdkFrameClockIdle], container=0x7188b0 [EShellWindow]) at ../gtk/gtkcontainer.c:2065
#25 0x00007ffff4f84016 in _g_closure_invoke_va (closure=0x17e4480, return_value=0x0, instance=0x450690, args=0x7fffffffe048, n_params=0, param_types=0x0) at ../gobject/gclosure.c:873
marshal = 0x7ffff4f85d50 <g_cclosure_marshal_VOID__VOIDv>
marshal_data = 0x0
in_marshal = 0
real_closure = 0x17e4460
__FUNCTION__ = "_g_closure_invoke_va"
#26 0x00007ffff4f9fef7 in g_signal_emit_valist (instance=0x450690, signal_id=<optimized out>, detail=0, var_args=var_args@entry=0x7fffffffe048) at ../gobject/gsignal.c:3300
return_accu = <optimized out>
accu = {g_type = 0x0, data = {{v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}, {v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}}}
accumulator = 0x0
emission = {next = 0x0, instance = 0x450690, ihint = {signal_id = 42, detail = 0, run_type = G_SIGNAL_RUN_FIRST}, state = EMISSION_RUN, chain_type = 0x48a010 [GdkFrameClockIdle/GdkFrameClock]}
signal_id = 42
instance_type = <optimized out>
emission_return = {g_type = 0x0, data = {{v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}, {v_int = 0, v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0}}}
rtype = 0x4 [void]
static_scope = 0
fastpath_handler = <optimized out>
closure = <optimized out>
run_type = <optimized out>
hlist = <optimized out>
l = <optimized out>
fastpath = 1
instance_and_params = <optimized out>
signal_return_type = <optimized out>
param_values = <optimized out>
node = <optimized out>
i = <optimized out>
n_params = <optimized out>
__FUNCTION__ = "g_signal_emit_valist"
#27 0x00007ffff4fa0522 in g_signal_emit (instance=instance@entry=0x450690, signal_id=<optimized out>, detail=detail@entry=0) at ../gobject/gsignal.c:3447
var_args = {{gp_offset = 24, fp_offset = 48, overflow_arg_area = 0x7fffffffe120, reg_save_area = 0x7fffffffe060}}
#28 0x00007ffff6306f2f in _gdk_frame_clock_emit_layout (frame_clock=frame_clock@entry=0x450690 [GdkFrameClockIdle]) at ../gdk/gdkframeclock.c:637
#29 0x00007ffff6307adf in gdk_frame_clock_paint_idle (data=<optimized out>) at ../gdk/gdkframeclockidle.c:428
iter = 2
clock = 0x450690 [GdkFrameClockIdle]
clock_idle = 0x450690 [GdkFrameClockIdle]
priv = 0x4505c0
skip_to_resume_events = 0
timings = 0xd5f760
__func__ = "gdk_frame_clock_paint_idle"
#30 0x00007ffff62f3c29 in gdk_threads_dispatch (data=0x6417a0, data@entry=<error reading variable: value has been optimized out>) at ../gdk/gdk.c:777
dispatch = 0x6417a0
ret = 0
#31 0x00007ffff4e9fed3 in g_timeout_dispatch (source=0x129c110, callback=<optimized out>, user_data=<optimized out>) at ../glib/gmain.c:4678
timeout_source = 0x129c110
again = <optimized out>
#32 0x00007ffff4e9f488 in g_main_dispatch (context=0x44f080) at ../glib/gmain.c:3189
dispatch = 0x7ffff4e9fec0 <g_timeout_dispatch>
prev_source = 0x0
was_in_call = 0
user_data = 0x6417a0
callback = 0x7ffff62f3c00 <gdk_threads_dispatch>
cb_funcs = <optimized out>
cb_data = 0x156e050
need_destroy = <optimized out>
source = 0x129c110
current = 0x44f170
i = 0
__FUNCTION__ = "g_main_dispatch"
#33 g_main_context_dispatch (context=context@entry=0x44f080) at ../glib/gmain.c:3854
#34 0x00007ffff4e9f848 in g_main_context_iterate (context=0x44f080, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib/gmain.c:3927
max_priority = 120
timeout = 0
some_ready = 1
nfds = <optimized out>
allocated_nfds = 5
fds = 0x9d8670
#35 0x00007ffff4e9fb32 in g_main_loop_run (loop=0xaa6790) at ../glib/gmain.c:4123
__FUNCTION__ = "g_main_loop_run"
#36 0x00007ffff65c50e5 in gtk_main () at ../gtk/gtkmain.c:1323
loop = 0xaa6790
#37 0x000000000040508e in main (argc=<optimized out>, argv=<optimized out>) at /git/gnome/evolution/src/shell/main.c:695
shell = 0x701240 [EShell]
settings = <optimized out>
skip_warning_dialog = <optimized out>
success = <optimized out>
error = 0x0
"set logging" lets you log output to a file.
Usage: set logging on [FILENAME]
set logging off
set logging file FILENAME
set logging overwrite [on|off]
set logging redirect [on|off]
Currently logging to "/home/d/gdb-tt.txt".
Logs will be appended to the log file.
Output will be logged and displayed.
Debug output will be logged and displayed.
Using gtk+ 3.24.10.
Edited by Milan Crha