In doing some testing, I found out that my own app generated a seg fault with the following message, any time that I tried to use the wx.lib.agw.customtreectrl.
(python:29207): GLib-GObject-WARNING **: invalid cast from GtkCheckButton' to
GtkTreeView’
Segmentation fault
This can be reproduced by running the wxPython demo (2.9.1.1), and trying to run the demo for “CustomTreeCtrl”. It segfaults for me immediately, just like it does in my app.
This happens specifically on KDE-based SuSe 11.4. I’ve tested on debian-flavors of linux, and there is no problem, and there is also no problem in SuSe 11.0 or 11.1. I’ve not yet had time to put together a SuSe 11.3 box yet.
Stack trace follows. Looks like it’s getting into trouble drawing the checkboxes. I don’t know if it is related, but I also noticed some stay pixels inside the checkboxes when running this same control under OSX.
(gdb) where
#0 0xb5b59434 in gtk_tree_view_get_path_at_pos () from /usr/lib/libgtk-x11-2.0.so.0
_#1 0xb41c4d83 in Oxygen::Gtk::CellInfo::CellInfo(GtkTreeView*, int, int, int, int) () from /usr/lib/gtk-2.0/2.10.0/engines/liboxygen-gtk.so
#2 0xb4225f0e in ?? () from /usr/lib/gtk-2.0/2.10.0/engines/liboxygen-gtk.so
#3 0xb5ad8d51 in gtk_paint_check () from /usr/lib/libgtk-x11-2.0.so.0
#4 0xb6419eda in wxRendererGTK::DrawCheckBox(wxWindow*, wxDC&, wxRect const&, int) () from /usr/local/wx/2.9.1.1/lib/libwx_gtk2u_core-2.9.so.1
#5 0xb4ea8a7b in _wrap_RendererNative_DrawCheckBox (args=0x879483c, kwargs=0x87e2bdc) at src/gtk/_gdi_wrap.cpp:38031
#6 0xb76a9a28 in PyCFunction_Call (func=0xb4f400ec, arg=0x879483c, kw=0x87e2bdc) at Objects/methodobject.c:85
#7 0xb770c9c7 in ext_do_call (f=0x8dcfb04, throwflag=0) at Python/ceval.c:4060
#8 PyEval_EvalFrameEx (f=0x8dcfb04, throwflag=0) at Python/ceval.c:2452
#9 0xb770e947 in PyEval_EvalCodeEx (co=0xb4fa1e30, globals=0xb4f769bc, locals=0x0, args=0x8dcf378, argcount=5, kws=0x8dcf38c, kwcount=0, defs=0x0,
defcount=0, closure=0x0) at Python/ceval.c:3000
#10 0xb770c95b in fast_function (f=0x8dcf214, throwflag=0) at Python/ceval.c:3846
#11 call_function (f=0x8dcf214, throwflag=0) at Python/ceval.c:3771
#12 PyEval_EvalFrameEx (f=0x8dcf214, throwflag=0) at Python/ceval.c:2412
#13 0xb770e947 in PyEval_EvalCodeEx (co=0x877ce30, globals=0x87e0824, locals=0x0, args=0x8dcf1a4, argcount=1, kws=0x8dcf1a8, kwcount=5,
defs=0x8798128, defcount=5, closure=0x0) at Python/ceval.c:3000
#14 0xb770c95b in fast_function (f=0x8dcf04c, throwflag=0) at Python/ceval.c:3846
#15 call_function (f=0x8dcf04c, throwflag=0) at Python/ceval.c:3771
#16 PyEval_EvalFrameEx (f=0x8dcf04c, throwflag=0) at Python/ceval.c:2412
#17 0xb770e947 in PyEval_EvalCodeEx (co=0x87a9c80, globals=0x87e0824, locals=0x0, args=0x89d9ea0, argcount=3, kws=0x89d9eac, kwcount=0,
defs=0x88218d8, defcount=1, closure=0x0) at Python/ceval.c:3000
#18 0xb770c95b in fast_function (f=0x89d9d14, throwflag=0) at Python/ceval.c:3846
#19 call_function (f=0x89d9d14, throwflag=0) at Python/ceval.c:3771
#20 PyEval_EvalFrameEx (f=0x89d9d14, throwflag=0) at Python/ceval.c:2412
#21 0xb770e947 in PyEval_EvalCodeEx (co=0x877cd10, globals=0x87e0824, locals=0x0, args=0x876fa80, argcount=7, kws=0x0, kwcount=0, defs=0x87a33f0,
defcount=7, closure=0x0) at Python/ceval.c:3000
#22 0xb7694db7 in function_call (func=0x87a33ac, arg=0x876fa74, kw=0x0) at Objects/funcobject.c:524
#23 0xb766915c in PyObject_Call (func=0x87a33ac, arg=0x876fa74, kw=0x0) at Objects/abstract.c:2492
#24 0xb767c1a1 in instancemethod_call (func=0x87a33ac, arg=0x876fa74, kw=0x0) at Objects/classobject.c:2579
#25 0xb766915c in PyObject_Call (func=0x878361c, arg=0x876fa74, kw=0x0) at Objects/abstract.c:2492
#26 0xb770bfe5 in do_call (f=0x89d9b1c, throwflag=0) at Python/ceval.c:3968
#27 call_function (f=0x89d9b1c, throwflag=0) at Python/ceval.c:3773
#28 PyEval_EvalFrameEx (f=0x89d9b1c, throwflag=0) at Python/ceval.c:2412
#29 0xb770e947 in PyEval_EvalCodeEx (co=0x87e74a0, globals=0x87c7dfc, locals=0x0, args=0x8d925b0, argcount=3, kws=0x89d8e48, kwcount=3,
defs=0x87982a8, defcount=6, closure=0x0) at Python/ceval.c:3000
#30 0xb7694eaf in function_call (func=0x8823d84, arg=0x8d925a4, kw=0x87e202c) at Objects/funcobject.c:524
#31 0xb766915c in PyObject_Call (func=0x8823d84, arg=0x8d925a4, kw=0x87e202c) at Objects/abstract.c:2492
#32 0xb767c1a1 in instancemethod_call (func=0x8823d84, arg=0x8d925a4, kw=0x87e202c) at Objects/classobject.c:2579
#33 0xb766915c in PyObject_Call (func=0xb5024504, arg=0x881b36c, kw=0x87e202c) at Objects/abstract.c:2492
#34 0xb76c8c81 in slot_tp_init (self=0x878e8cc, args=0x881b36c, kwds=0x87e202c) at Objects/typeobject.c:5632
#35 0xb76c7995 in type_call (type=, args=0x881b36c, kwds=0x87e202c) at Objects/typeobject.c:742
#36 0xb766915c in PyObject_Call (func=0x8b88a4c, arg=0x881b36c, kw=0x87e202c) at Objects/abstract.c:2492
#37 0xb770bfe5 in do_call (f=0x8dc67f4, throwflag=0) at Python/ceval.c:3968
#38 call_function (f=0x8dc67f4, throwflag=0) at Python/ceval.c:3773
#39 PyEval_EvalFrameEx (f=0x8dc67f4, throwflag=0) at Python/ceval.c:2412
#40 0xb770e947 in PyEval_EvalCodeEx (co=0x878aad0, globals=0x87c7dfc, locals=0x0, args=0x8d90588, argcount=3, kws=0x0, kwcount=0, defs=0x0,
defcount=0, closure=0x0) at Python/ceval.c:3000
#41 0xb7694db7 in function_call (func=0x882379c, arg=0x8d9057c, kw=0x0) at Objects/funcobject.c:524
#42 0xb766915c in PyObject_Call (func=0x882379c, arg=0x8d9057c, kw=0x0) at Objects/abstract.c:2492
···
–
Daniel Hyams
dhyams@gmail.com