| 1 | Notes: |
|---|
| 2 | - The "destroy ...." messages below are printf()'s of the THIS pointer |
|---|
| 3 | in the wxWindowUpdateLocker::DESTROY XSUB. |
|---|
| 4 | - I could provoke this crash by simply switching files between "Main.pm" |
|---|
| 5 | (see "run script/padre lib/Padre/Wx/M*.pm" below) and another file |
|---|
| 6 | a couple of times while having syntax-check and outline view enabled |
|---|
| 7 | until the status indicator turned from an ampersand into a red |
|---|
| 8 | exclamation mark. This indicates high load. Then I waited for it |
|---|
| 9 | to go down and finally changed the file ONE more time. Crash. |
|---|
| 10 | - I dumped the SV* mentioned at the top of the backtrace. It's at the end |
|---|
| 11 | of this document. I also included the corresponding code from Wx.pm at |
|---|
| 12 | the very end. |
|---|
| 13 | |
|---|
| 14 | GNU gdb 6.8-debian |
|---|
| 15 | Copyright (C) 2008 Free Software Foundation, Inc. |
|---|
| 16 | License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> |
|---|
| 17 | This is free software: you are free to change and redistribute it. |
|---|
| 18 | There is NO WARRANTY, to the extent permitted by law. Type "show copying" |
|---|
| 19 | and "show warranty" for details. |
|---|
| 20 | This GDB was configured as "x86_64-linux-gnu"... |
|---|
| 21 | (gdb) run script/padre lib/Padre/Wx/M*.pm |
|---|
| 22 | Starting program: /home/tsee/bleadperl/install_maint_5.10/bin/perl script/padre lib/Padre/Wx/M*.pm |
|---|
| 23 | [Thread debugging using libthread_db enabled] |
|---|
| 24 | [New Thread 0x7f1890c556e0 (LWP 14828)] |
|---|
| 25 | [New Thread 0x40da9950 (LWP 14831)] |
|---|
| 26 | [Thread 0x40da9950 (LWP 14831) exited] |
|---|
| 27 | destroy 73041040 |
|---|
| 28 | [New Thread 0x40da9950 (LWP 14840)] |
|---|
| 29 | destroy 73041040 |
|---|
| 30 | destroy 139743073389200 |
|---|
| 31 | destroy 72525280 |
|---|
| 32 | destroy 155266800 |
|---|
| 33 | destroy 98618992 |
|---|
| 34 | [New Thread 0x422c1950 (LWP 14857)] |
|---|
| 35 | destroy 154967632 |
|---|
| 36 | destroy 229352240 |
|---|
| 37 | [Thread 0x40da9950 (LWP 14840) exited] |
|---|
| 38 | destroy 73041040 |
|---|
| 39 | |
|---|
| 40 | Program received signal SIGSEGV, Segmentation fault. |
|---|
| 41 | [Switching to Thread 0x7f1890c556e0 (LWP 14828)] |
|---|
| 42 | 0x00007f188d98907b in ~wxWindowUpdateLocker (this=0x45a8490) |
|---|
| 43 | at /home/tsee/bleadperl/install_maint_5.10/lib/site_perl/5.10.0/x86_64-linux-thread-multi/Alien/wxWidgets/gtk_2_8_8_dbg_uni/include/wx-2.8/wx/wupdlock.h:28 |
|---|
| 44 | 28 ~wxWindowUpdateLocker() { m_win->Thaw(); } |
|---|
| 45 | Current language: auto; currently c++ |
|---|
| 46 | (gdb) bt |
|---|
| 47 | #0 0x00007f188d98907b in ~wxWindowUpdateLocker (this=0x45a8490) |
|---|
| 48 | at /home/tsee/bleadperl/install_maint_5.10/lib/site_perl/5.10.0/x86_64-linux-thread-multi/Alien/wxWidgets/gtk_2_8_8_dbg_uni/include/wx-2.8/wx/wupdlock.h:28 |
|---|
| 49 | #1 0x00007f188d9806f6 in XS_Wx__WindowUpdateLocker_DESTROY (my_perl=0x4f36f00, cv=0x6dd1d60) at Window.c:5905 |
|---|
| 50 | #2 0x00000000004ceb8e in Perl_pp_entersub (my_perl=0x4f36f00) at pp_hot.c:2888 |
|---|
| 51 | #3 0x00000000004406a1 in Perl_call_sv (my_perl=0x4f36f00, sv=0x6dd1d60, flags=150) at perl.c:2718 |
|---|
| 52 | #4 0x00000000004f1b44 in Perl_sv_clear (my_perl=0x4f36f00, sv=0x6dd1d10) at sv.c:5448 |
|---|
| 53 | #5 0x00000000004f2890 in Perl_sv_free2 (my_perl=0x4f36f00, sv=0x6dd1d10) at sv.c:5712 |
|---|
| 54 | #6 0x00000000004dc965 in S_visit (my_perl=0x4f36f00, f=0x4f3510 <do_clean_objs>, flags=2048, mask=2048) at sv.c:441 |
|---|
| 55 | #7 0x00000000004dc9df in Perl_sv_clean_objs (my_perl=0x45a8490) at sv.c:549 |
|---|
| 56 | #8 0x0000000000442188 in perl_destruct (my_perl=0x4f36f00) at perl.c:834 |
|---|
| 57 | #9 0x00007f188f7eef5d in S_ithread_clear (my_perl=0xfe4010, thread=0x4edd4c0) at threads.xs:166 |
|---|
| 58 | #10 0x00007f188f7efd7b in XS_threads_join (my_perl=0xfe4010, cv=<value optimized out>) at threads.xs:1150 |
|---|
| 59 | #11 0x00000000004ceb8e in Perl_pp_entersub (my_perl=0xfe4010) at pp_hot.c:2888 |
|---|
| 60 | #12 0x000000000049f7ec in Perl_runops_debug (my_perl=0xfe4010) at dump.c:1968 |
|---|
| 61 | #13 0x0000000000440408 in Perl_call_sv (my_perl=0xfe4010, sv=0x425d4d0, flags=134) at perl.c:2718 |
|---|
| 62 | #14 0x00007f188d827bb6 in wxPliEventCallback::Handler (this=0x453baa0, event=@0x7fff98c7fb00) at cpp/e_cback.cpp:118 |
|---|
| 63 | #15 0x00007f188c7a04a3 in wxAppConsole::HandleEvent (this=0x20271e0, handler=0x453baa0, func=0x7f188d8272c8 <wxPliEventCallback::Handler(wxEvent&)>, event=@0x7fff98c7fb00) |
|---|
| 64 | at ../src/common/appbase.cpp:322 |
|---|
| 65 | #16 0x00007f188c85fe34 in wxEvtHandler::ProcessEventIfMatches (entry=@0x453cfc0, handler=0x453baa0, event=@0x7fff98c7fb00) at ../src/common/event.cpp:1230 |
|---|
| 66 | #17 0x00007f188c86037a in wxEvtHandler::SearchDynamicEventTable (this=0x453baa0, event=@0x7fff98c7fb00) at ../src/common/event.cpp:1412 |
|---|
| 67 | #18 0x00007f188c861ed1 in wxEvtHandler::ProcessEvent (this=0x453baa0, event=@0x7fff98c7fb00) at ../src/common/event.cpp:1288 |
|---|
| 68 | #19 0x00007f188c861f50 in wxEvtHandler::ProcessEvent (this=0x453bce0, event=@0x7fff98c7fb00) at ../src/common/event.cpp:1299 |
|---|
| 69 | #20 0x00007f187e231cef in wxAuiNotebook::SetSelection (this=0x453baa0, new_page=1) at ../src/aui/auibook.cpp:3508 |
|---|
| 70 | #21 0x00007f187e2322fc in wxAuiNotebook::OnTabClicked (this=0x453baa0, command_evt=@0x7fff98c7ff10) at ../src/aui/auibook.cpp:3789 |
|---|
| 71 | #22 0x00007f188c7a04a3 in wxAppConsole::HandleEvent (this=0x20271e0, handler=0x453baa0, func=0x7f187e23220e <wxAuiNotebook::OnTabClicked(wxCommandEvent&)>, event=@0x7fff98c7ff10) |
|---|
| 72 | at ../src/common/appbase.cpp:322 |
|---|
| 73 | #23 0x00007f188c85fe34 in wxEvtHandler::ProcessEventIfMatches (entry=@0x7f187e45f5f0, handler=0x453baa0, event=@0x7fff98c7ff10) at ../src/common/event.cpp:1230 |
|---|
| 74 | #24 0x00007f188c861ddc in wxEventHashTable::HandleEvent (this=0x7f187e45f560, event=@0x7fff98c7ff10, self=0x453baa0) at ../src/common/event.cpp:905 |
|---|
| 75 | #25 0x00007f188c861f17 in wxEvtHandler::ProcessEvent (this=0x453baa0, event=@0x7fff98c7ff10) at ../src/common/event.cpp:1292 |
|---|
| 76 | #26 0x00007f188c861f50 in wxEvtHandler::ProcessEvent (this=0x453bce0, event=@0x7fff98c7ff10) at ../src/common/event.cpp:1299 |
|---|
| 77 | #27 0x00007f188ce8cd42 in wxWindowBase::TryParent (this=0x4e1d570, event=@0x7fff98c7ff10) at ../src/common/wincmn.cpp:2661 |
|---|
| 78 | #28 0x00007f188c861f72 in wxEvtHandler::ProcessEvent (this=0x4e1d570, event=@0x7fff98c7ff10) at ../src/common/event.cpp:1305 |
|---|
| 79 | #29 0x00007f187e231637 in wxAuiTabCtrl::OnLeftDown (this=0x4e1d570, evt=@0x7fff98c80290) at ../src/aui/auibook.cpp:2401 |
|---|
| 80 | #30 0x00007f188c7a04a3 in wxAppConsole::HandleEvent (this=0x20271e0, handler=0x4e1d570, func=0x7f187e23149e <wxAuiTabCtrl::OnLeftDown(wxMouseEvent&)>, event=@0x7fff98c80290) |
|---|
| 81 | at ../src/common/appbase.cpp:322 |
|---|
| 82 | #31 0x00007f188c85fe34 in wxEvtHandler::ProcessEventIfMatches (entry=@0x7f187e45f318, handler=0x4e1d570, event=@0x7fff98c80290) at ../src/common/event.cpp:1230 |
|---|
| 83 | #32 0x00007f188c861ddc in wxEventHashTable::HandleEvent (this=0x7f187e45f260, event=@0x7fff98c80290, self=0x4e1d570) at ../src/common/event.cpp:905 |
|---|
| 84 | #33 0x00007f188c861f17 in wxEvtHandler::ProcessEvent (this=0x4e1d570, event=@0x7fff98c80290) at ../src/common/event.cpp:1292 |
|---|
| 85 | ---Type <return> to continue, or q <return> to quit--- |
|---|
| 86 | #34 0x00007f188cd5fb0c in wxWindow::GTKProcessEvent (this=0x4e1d570, event=@0x7fff98c80290) at ../src/gtk/window.cpp:1410 |
|---|
| 87 | #35 0x00007f188cd690cb in gtk_window_button_press_callback (widget=0x4592af0, gdk_event=0x4e7be60, win=0x4e1d570) at ../src/gtk/window.cpp:1609 |
|---|
| 88 | #36 0x00007f188bb17908 in ?? () from /usr/lib/libgtk-x11-2.0.so.0 |
|---|
| 89 | #37 0x00007f188a52b25d in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0 |
|---|
| 90 | #38 0x00007f188a540f5d in ?? () from /usr/lib/libgobject-2.0.so.0 |
|---|
| 91 | #39 0x00007f188a54248a in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0 |
|---|
| 92 | #40 0x00007f188a542b33 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0 |
|---|
| 93 | #41 0x00007f188bc1a74e in ?? () from /usr/lib/libgtk-x11-2.0.so.0 |
|---|
| 94 | #42 0x00007f188bb10273 in gtk_propagate_event () from /usr/lib/libgtk-x11-2.0.so.0 |
|---|
| 95 | #43 0x00007f188bb11393 in gtk_main_do_event () from /usr/lib/libgtk-x11-2.0.so.0 |
|---|
| 96 | #44 0x00007f188b79406c in ?? () from /usr/lib/libgdk-x11-2.0.so.0 |
|---|
| 97 | #45 0x00007f1889c80d5b in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0 |
|---|
| 98 | #46 0x00007f1889c8452d in ?? () from /usr/lib/libglib-2.0.so.0 |
|---|
| 99 | #47 0x00007f1889c84a5d in g_main_loop_run () from /usr/lib/libglib-2.0.so.0 |
|---|
| 100 | #48 0x00007f188bb117a7 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0 |
|---|
| 101 | #49 0x00007f188cd4c33d in wxEventLoop::Run (this=0x3a42fe0) at ../src/gtk/evtloop.cpp:76 |
|---|
| 102 | #50 0x00007f188cdecc74 in wxAppBase::MainLoop (this=0x20271e0) at ../src/common/appcmn.cpp:312 |
|---|
| 103 | #51 0x00007f188d6ef8ca in wxPliApp::MainLoop (this=0x20271e0) at cpp/app.h:93 |
|---|
| 104 | #52 0x00007f188d67005e in XS_Wx__App_MainLoop (my_perl=0xfe4010, cv=0x1f92920) at Wx.c:15500 |
|---|
| 105 | #53 0x00000000004ceb8e in Perl_pp_entersub (my_perl=0xfe4010) at pp_hot.c:2888 |
|---|
| 106 | #54 0x000000000049f7ec in Perl_runops_debug (my_perl=0xfe4010) at dump.c:1968 |
|---|
| 107 | #55 0x0000000000441585 in perl_run (my_perl=0xfe4010) at perl.c:2432 |
|---|
| 108 | #56 0x0000000000421a1c in main (argc=5, argv=0x7fff98c80e08, env=0x7fff98c80e38) at perlmain.c:117 |
|---|
| 109 | (gdb) up |
|---|
| 110 | #1 0x00007f188d9806f6 in XS_Wx__WindowUpdateLocker_DESTROY (my_perl=0x4f36f00, cv=0x6dd1d60) at Window.c:5905 |
|---|
| 111 | 5905 } |
|---|
| 112 | (gdb) up |
|---|
| 113 | #2 0x00000000004ceb8e in Perl_pp_entersub (my_perl=0x4f36f00) at pp_hot.c:2888 |
|---|
| 114 | 2888 (void)(*CvXSUB(cv))(aTHX_ cv); |
|---|
| 115 | Current language: auto; currently c |
|---|
| 116 | (gdb) up |
|---|
| 117 | #3 0x00000000004406a1 in Perl_call_sv (my_perl=0x4f36f00, sv=0x6dd1d60, flags=150) at perl.c:2718 |
|---|
| 118 | 2718 CALL_BODY_SUB((OP*)&myop); |
|---|
| 119 | (gdb) print *sv |
|---|
| 120 | $1 = {sv_any = 0x6d50090, sv_refcnt = 2, sv_flags = 13, sv_u = {svu_iv = 0, svu_uv = 0, svu_rv = 0x0, svu_pv = 0x0, svu_array = 0x0, svu_hash = 0x0, svu_gp = 0x0}, |
|---|
| 121 | sv_debug_optype = 169, sv_debug_inpad = 0, sv_debug_cloned = 1, sv_debug_line = 141, sv_debug_serial = 2880226771, |
|---|
| 122 | sv_debug_file = 0x6dd9708 "/home/tsee/bleadperl/install_maint_5.10/lib/site_perl/5.10.0/x86_64-linux-thread-multi/Wx.pm"} |
|---|
| 123 | (gdb) q |
|---|
| 124 | |
|---|
| 125 | Corresponding code in Window.pm: |
|---|
| 126 | 138 { |
|---|
| 127 | 139 _boot_Constant( 'Wx', $XS_VERSION ); |
|---|
| 128 | 140 _boot_Events( 'Wx', $XS_VERSION ); |
|---|
| 129 | 141* _boot_Window( 'Wx', $XS_VERSION ); |
|---|
| 130 | 142 _boot_Controls( 'Wx', $XS_VERSION ); |
|---|
| 131 | 143 _boot_Frames( 'Wx', $XS_VERSION ); |
|---|
| 132 | 144 _boot_GDI( 'Wx', $XS_VERSION ); |
|---|
| 133 | 145 } |
|---|
| 134 | |
|---|
| 135 | |
|---|
| 136 | |
|---|