We have an extremely frustrating problem with wxGrid on OS X. We're
loading the frame from XRCed. It seems no matter what we do the
program crashes on startup most of the time. Other times (but much
less frequently) it works fine with no changes to the code
whatsoever. This inconsistency is a major headache. The crashlog is
posted below...it appears the problem is in the C++ side of things
(wxGrid::Refresh).
Has anyone else encountered similar problems or found a workaround?
For now I think we're going to embark on writing a less capable pure-
python implementation of a grid.
Python version is 2.5.4
------------------------------------------- Crash Report
···
-----------------------------------------------
Process: Python [2650]
Path: /Library/Frameworks/Python.framework/Versions/2.5/
Resources/Python.app/Contents/MacOS/Python
Identifier: org.python.python
Version: 2.5a0 (2.5alpha0)
Code Type: X86 (Native)
Parent Process: tcsh [422]
Date/Time: 2009-06-09 09:31:48.853 -0400
OS Version: Mac OS X 10.5.6 (9G55)
Report Version: 6
Exception Type: EXC_BAD_ACCESS (SIGBUS)
Exception Codes: KERN_PROTECTION_FAILURE at 0x0000000000000000
Crashed Thread: 0
Thread 0 Crashed:
0 libwx_macud-2.8.0.dylib 0x020457c2 wxGrid::Refresh(bool,
wxRect const*) + 490
1 libwx_macud-2.8.0.dylib 0x01f2856a
wxWindow::MacUpdateControlFont() + 170
2 libwx_macud-2.8.0.dylib 0x01f28776 wxWindow::SetFont(wxFont
const&) + 36
3 libwx_macud-2.8.0.dylib 0x01f2a43d
wxWindow::DoSetWindowVariant(wxWindowVariant) + 243
4 libwx_macud-2.8.0.dylib 0x01f27f45
wxWindow::MacPostControlCreate(wxPoint const&, wxSize const&) + 229
5 libwx_macud-2.8.0.dylib 0x01f2ca5e wxWindow::Create
(wxWindow*, int, wxPoint const&, wxSize const&, long, wxString const&)
+ 282
6 libwx_macud-2.8.0.dylib 0x02011ab2 wxPanel::Create
(wxWindow*, int, wxPoint const&, wxSize const&, long, wxString const&)
+ 60
7 libwx_macud-2.8.0.dylib 0x02018059 wxScrolledWindow::Create
(wxWindow*, int, wxPoint const&, wxSize const&, long, wxString const&)
+ 77
8 libwx_macud-2.8.0.dylib 0x02066156 wxGrid::Create
(wxWindow*, int, wxPoint const&, wxSize const&, long, wxString const&)
+ 72
9 libwx_macud-2.8.0.dylib 0x020e5647
wxGridXmlHandler::DoCreateResource() + 455
10 libwx_macud-2.8.0.dylib 0x02113115
wxXmlResourceHandler::CreateResource(wxXmlNode*, wxObject*, wxObject*)
+ 457
11 libwx_macud-2.8.0.dylib 0x02113bf1
wxXmlResource::CreateResFromNode(wxXmlNode*, wxObject*, wxObject*,
wxXmlResourceHandler*) + 1231
12 libwx_macud-2.8.0.dylib 0x020fae06
wxSizerXmlHandler::Handle_sizeritem() + 220
13 libwx_macud-2.8.0.dylib 0x02113115
wxXmlResourceHandler::CreateResource(wxXmlNode*, wxObject*, wxObject*)
+ 457
14 libwx_macud-2.8.0.dylib 0x02113bf1
wxXmlResource::CreateResFromNode(wxXmlNode*, wxObject*, wxObject*,
wxXmlResourceHandler*) + 1231
15 libwx_macud-2.8.0.dylib 0x02113f16
wxXmlResourceHandler::CreateChildren(wxObject*, bool) + 92
16 libwx_macud-2.8.0.dylib 0x020fa456
wxSizerXmlHandler::Handle_sizer() + 306
17 libwx_macud-2.8.0.dylib 0x02113115
wxXmlResourceHandler::CreateResource(wxXmlNode*, wxObject*, wxObject*)
+ 457
18 libwx_macud-2.8.0.dylib 0x02113bf1
wxXmlResource::CreateResFromNode(wxXmlNode*, wxObject*, wxObject*,
wxXmlResourceHandler*) + 1231
19 libwx_macud-2.8.0.dylib 0x02113f16
wxXmlResourceHandler::CreateChildren(wxObject*, bool) + 92
20 libwx_macud-2.8.0.dylib 0x020f04cb
wxPanelXmlHandler::DoCreateResource() + 615
21 libwx_macud-2.8.0.dylib 0x02113115
wxXmlResourceHandler::CreateResource(wxXmlNode*, wxObject*, wxObject*)
+ 457
22 libwx_macud-2.8.0.dylib 0x02113bf1
wxXmlResource::CreateResFromNode(wxXmlNode*, wxObject*, wxObject*,
wxXmlResourceHandler*) + 1231
23 libwx_macud-2.8.0.dylib 0x021146f0 wxXmlResource::LoadPanel
(wxWindow*, wxString const&) + 120
24 _xrc.so 0x13b9b0d9
_wrap_XmlResource_LoadPanel + 333 (xrc_wrap.cpp:3900)
25 org.python.python 0x003fadac PyObject_Call + 45
(abstract.c:1861)
26 org.python.python 0x004846e1 PyEval_EvalFrameEx +
14836 (ceval.c:3892)
27 org.python.python 0x0048771d PyEval_EvalCodeEx + 1819
(ceval.c:2875)
28 org.python.python 0x00484d9e PyEval_EvalFrameEx +
16561 (ceval.c:3708)
29 org.python.python 0x00486b86 PyEval_EvalFrameEx +
24217 (ceval.c:3698)
30 org.python.python 0x0048771d PyEval_EvalCodeEx + 1819
(ceval.c:2875)
31 org.python.python 0x0041c103 function_call + 220
(funcobject.c:517)
32 org.python.python 0x003fadac PyObject_Call + 45
(abstract.c:1861)
33 org.python.python 0x004846e1 PyEval_EvalFrameEx +
14836 (ceval.c:3892)
34 org.python.python 0x0048771d PyEval_EvalCodeEx + 1819
(ceval.c:2875)
35 org.python.python 0x0041c103 function_call + 220
(funcobject.c:517)
36 org.python.python 0x003fadac PyObject_Call + 45
(abstract.c:1861)
37 org.python.python 0x0047fe63
PyEval_CallObjectWithKeywords + 112 (ceval.c:3481)
38 _core_.so 0x0180ac4c
wxPyCallback::EventThunker(wxEvent&) + 234 (helpers.cpp:1666)
39 libwx_macud-2.8.0.dylib 0x01e962f2
wxEvtHandler::ProcessEventIfMatches(wxEventTableEntryBase const&,
wxEvtHandler*, wxEvent&) + 108
40 libwx_macud-2.8.0.dylib 0x01e96398
wxEvtHandler::SearchDynamicEventTable(wxEvent&) + 80
41 libwx_macud-2.8.0.dylib 0x01e971a1
wxEvtHandler::ProcessEvent(wxEvent&) + 225
42 libwx_macud-2.8.0.dylib 0x01e96edc
wxEvtHandler::ProcessPendingEvents() + 86
43 libwx_macud-2.8.0.dylib 0x01df0d02
wxAppConsole::ProcessPendingEvents() + 102
44 com.apple.CoreFoundation 0x90ea55f5 CFRunLoopRunSpecific +
3141
45 com.apple.CoreFoundation 0x90ea5cd8 CFRunLoopRunInMode + 88
46 com.apple.HIToolbox 0x964c42c0
RunCurrentEventLoopInMode + 283
47 com.apple.HIToolbox 0x964c4012 ReceiveNextEventCommon +
175
48 com.apple.HIToolbox 0x9660746b ReceiveNextEvent + 58
49 libwx_macud-2.8.0.dylib 0x01eb96fe wxApp::MacDoOneEvent() +
84
50 libwx_macud-2.8.0.dylib 0x01ed3ac6 wxEventLoop::Dispatch()
+ 32
51 libwx_macud-2.8.0.dylib 0x01f8e575 wxEventLoopManual::Run()
+ 97
52 libwx_macud-2.8.0.dylib 0x01f64b3e wxAppBase::MainLoop() +
76
53 _core_.so 0x01801928 wxPyApp::MainLoop() + 52
(helpers.cpp:156)
54 _core_.so 0x0184e95a _wrap_PyApp_MainLoop +
82 (_core_wrap.cpp:31666)
55 org.python.python 0x003fadac PyObject_Call + 45
(abstract.c:1861)
56 org.python.python 0x004846e1 PyEval_EvalFrameEx +
14836 (ceval.c:3892)
57 org.python.python 0x0048771d PyEval_EvalCodeEx + 1819
(ceval.c:2875)
58 org.python.python 0x0041c103 function_call + 220
(funcobject.c:517)
59 org.python.python 0x003fadac PyObject_Call + 45
(abstract.c:1861)
60 org.python.python 0x00402aa7 instancemethod_call +
401 (classobject.c:2519)
61 org.python.python 0x003fadac PyObject_Call + 45
(abstract.c:1861)
62 org.python.python 0x00482577 PyEval_EvalFrameEx +
6282 (ceval.c:3823)
63 org.python.python 0x00486b86 PyEval_EvalFrameEx +
24217 (ceval.c:3698)
64 org.python.python 0x0048771d PyEval_EvalCodeEx + 1819
(ceval.c:2875)
65 org.python.python 0x004878d1 PyEval_EvalCode + 87
(ceval.c:520)
66 org.python.python 0x004ab031 PyRun_FileExFlags + 260
(pythonrun.c:1273)
67 org.python.python 0x004ab3cb PyRun_SimpleFileExFlags
+ 640 (pythonrun.c:879)
68 org.python.python 0x004b8bbe Py_Main + 3077 (main.c:
532)
69 org.python.python 0x00001f8e 0x1000 + 3982
70 org.python.python 0x00001eb5 0x1000 + 3765
Thread 0 crashed with X86 Thread State (32-bit):
eax: 0x00000000 ebx: 0x01f2a358 ecx: 0x01225000 edx: 0x00000000
edi: 0xbfffbff8 esi: 0x00000000 ebp: 0xbfffbfb8 esp: 0xbfffbf60
ss: 0x0000001f efl: 0x00010246 eip: 0x020457c2 cs: 0x00000017
ds: 0x0000001f es: 0x0000001f fs: 0x00000000 gs: 0x00000037
cr2: 0x00000000