2012-10-13 48 views
0

我有一個叫做h2hh的wxpython應用程序。 OSX上的用戶正在重複崩潰並提供了附加的崩潰轉儲。如何調試在wxpython/python線程中崩潰的wxpython應用程序

我甚至不知道從哪裏開始調試!幫幫我?我怎麼開始?即使對於一些可能會給我提示的問題,我也會很感激......

謝謝!在http://gregories.net/images/crashdump.txt

Date/Time:  2012-10-13 00:40:50 +0200 
OS Version:  10.8.2 (Build 12C60) 
Architecture: x86_64 
Report Version: 11 

Command:   h2hh 
Path:   /Applications/h2hh.app/Contents/MacOS/h2hh 
Version:   2.1.4 Beta (2.1.4 Beta) 
Parent:   launchd [225] 

PID:    31842 
Event:   hang 
Duration:  1.97s 
Steps:   20 (100ms sampling interval) 

Hardware model: MacBookAir3,2 
Active cpus:  2 
Free pages:  311652 pages (-1327) 
Pageins:   16 pages 
Pageouts:  0 pages 


Process:   h2hh [31842] 
Path:   /Applications/h2hh.app/Contents/MacOS/h2hh 
Architecture: x86_64 
Parent:   launchd [225] 
UID:    501 
Task size:  20328 pages (+470) 
CPU Time:  1.936s 

    Thread 0x69ee1 DispatchQueue 1   priority <multiple> cpu time 0.935s 
    20 start + 52 (h2hh) [0x100000e24] 
    20 main + 1438 (h2hh) [0x100004b6e] 
     20 start + 13830 (h2hh) [0x1000043f6] 
     20 PyRun_SimpleFileExFlags + 392 (Python) [0x1018c3da8] 
      20 PyRun_FileExFlags + 164 (Python) [0x1018c2af4] 
      20 PyEval_EvalCode + 54 (Python) [0x1018a4326] 
       20 PyEval_EvalCodeEx + 2103 (Python) [0x1018a42a7] 
       20 PyEval_EvalFrameEx + 18189 (Python) [0x1018a109d] 
        20 ??? (Python + 672856) [0x1018a4458] 
        20 PyEval_EvalCodeEx + 2103 (Python) [0x1018a42a7] 
         20 PyEval_EvalFrameEx + 3188 (Python) [0x10189d604] 
         20 PyEval_EvalCode + 54 (Python) [0x1018a4326] 
          20 PyEval_EvalCodeEx + 2103 (Python) [0x1018a42a7] 
          20 PyEval_EvalFrameEx + 18189 (Python) [0x1018a109d] 
           20 ??? (Python + 672739) [0x1018a43e3] 
           20 PyEval_EvalFrameEx + 18725 (Python) [0x1018a12b5] 
            20 PyObject_Call + 97 (Python) [0x101808be1] 
            20 ??? (Python + 109079) [0x10181aa17] 
             20 PyObject_Call + 97 (Python) [0x101808be1] 
             20 ??? (Python + 202123) [0x10183158b] 
              20 PyEval_EvalCodeEx + 2103 (Python) [0x1018a42a7] 
              20 PyEval_EvalFrameEx + 20406 (Python) [0x1018a1946] 
               20 wxPySwigInstance_Check(_object*) + 223711 (_core_.so) [0x101d7244f] 
               20 wxPyApp::MainLoop() + 76 (_core_.so) [0x101d26c3c] 
                20 wxAppConsoleBase::MainLoop() + 72 (libwx_osx_cocoau-2.9.4.0.0.dylib) [0x101fac6d8] 
                20 wxCFEventLoop::Run() + 55 (libwx_osx_cocoau-2.9.4.0.0.dylib) [0x1020a7607] 
                 20 wxGUIEventLoop::DoRun() + 51 (libwx_osx_cocoau-2.9.4.0.0.dylib) [0x1021d40b3] 
                 20 -[NSApplication run] + 517 (AppKit) [0x7fff8f48e283] 
                  20 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 128 (AppKit) [0x7fff8f496ed2] 

blah blah 

    1 CFArrayGetFirstIndexOfValue + 35 (CoreFoundation) [0x7fff8d575a83] 
                                                                          1 <executing in user space> 
                                                2 ??? (Python + 672739) [0x1018a43e3] 
                                                1 PyEval_EvalFrameEx + 18189 (Python) [0x1018a109d] 
                                                 1 ??? (Python + 672856) [0x1018a4458] 
                                                 1 PyEval_EvalCodeEx + 2103 (Python) [0x1018a42a7] 
                                                  1 PyEval_EvalFrameEx + 18011 (Python) [0x1018a0feb] 
                                                  1 ??? (Python + 925773) [0x1018e204d] 
                                                   1 ??? (Python + 955601) [0x1018e94d1] 
                                                   1 PyEval_CallObjectWithKeywords + 180 (Python) [0x10189bd94] 
                                                    1 PyObject_Call + 97 (Python) [0x101808be1] 
                                                    1 PyUnicodeUCS2_Join + 521 (Python) [0x10187b939] 
                                                     1 PyUnicodeUCS2_FromEncodedObject + 69 (Python) [0x101879155] 
                                                     1 <executing in user space> 
                                                1 PyEval_EvalFrameEx + 22213 (Python) [0x1018a2055] 
                                                 1 PyThread_release_lock + 22 (Python) [0x1018d4e06] 
                                                 1 OSAtomicCompareAndSwap64Barrier$VARIANT$mp + 8 (libsystem_c.dylib) [0x7fff8e78ec9c] 
                                                  1 <executing in user space> 
                                          1 ??? (Python + 672856) [0x1018a4458] 
                                           1 PyEval_EvalCodeEx + 2103 (Python) [0x1018a42a7] 
                                           1 PyEval_EvalFrameEx + 20406 (Python) [0x1018a1946] 
                                            1 wxGBPosition_helper(_object*, wxGBPosition**) + 14799 (_core_.so) [0x101ddbc5f] 
                                            1 PyEval_RestoreThread + 62 (Python) [0x1018a44fe] 
                                             1 PyThread_acquire_lock + 107 (Python) [0x1018d4ecb] 
                                             1 __psynch_cvwait + 10 (libsystem_kernel.dylib) [0x7fff848c50fa] 
                                             *1 psynch_cvcontinue + 0 (mach_kernel) [0xffffff80005b5d30] 

回答

2

完全崩潰轉儲確保您不能直接從一個線程調用WX方法。如果你這樣做,那麼你正在做一些未定義的事情,並會導致問題。您必須改用wx線程安全方法,例如wx.CallAfter,wx.CallLater或wx.PostEvent。如果你在一個線程中調用了像myControlSetValue()這樣的東西,你就會遇到問題。

我推薦你問一下wxPython郵件列表。那裏有幾個Mac傢伙,其中包括一些核心開發人員。

+0

謝謝,我會研究這個,一個很好的領導。我想 - 我有CallAfter等,但絕對是我的開始! – GreenAsJade

+0

剛回來說這是現貨。我發現了一個定時器回調函數,它直接調用wx而不是CallAfter()。謝謝! – GreenAsJade