Author Topic: Linux crashes  (Read 21709 times)

Offline tiwag

  • Developer
  • Lives here!
  • *****
  • Posts: 1196
  • sailing away ...
    • tiwag.cb
Linux crashes
« on: January 11, 2006, 05:43:03 pm »
i found the reason for my linux-crashes ...  :D :D
(see also this thread http://forums.codeblocks.org/index.php?topic=1937.msg15068#msg15068 )

guilty is the "Start here" page
[edit] see next post [/edit]

when i enable this option, C::B crashes when exiting (File->Quit),
if any project was opened (File->Open ..) and closed before (File->CloseProject).
« Last Edit: January 11, 2006, 07:52:16 pm by tiwag »

Offline tiwag

  • Developer
  • Lives here!
  • *****
  • Posts: 1196
  • sailing away ...
    • tiwag.cb
Re: Linux crashes
« Reply #1 on: January 11, 2006, 07:55:25 pm »
my crashes were gone by coincidence ...  :(
when i disabled the "Start Here" page

now i've reached a state, where it crashes without "Start Here" page when closing a project or exiting C::B

damned  :x

attached are
C::B debug report and
gdb session backtrace

HTH

[attachment deleted by admin]
« Last Edit: January 11, 2006, 08:22:45 pm by tiwag »

Offline tiwag

  • Developer
  • Lives here!
  • *****
  • Posts: 1196
  • sailing away ...
    • tiwag.cb
Re: Linux crashes
« Reply #2 on: January 12, 2006, 08:42:06 am »
am i the only one who has crashes with the linux version ???
please  tell us YOUR experiences :)

Offline Ceniza

  • Developer
  • Lives here!
  • *****
  • Posts: 1442
    • CenizaSOFT
Re: Linux crashes
« Reply #3 on: January 12, 2006, 08:48:00 am »
You'ren't the only one, but I'ven't spent much time with the Linux version.

Last crash I got was trying to close a project right clicking on it and selecting "close project". It "didn't work". I tried again with the same result. I tried to close Code::Blocks and it just died. I just cannot remember the last version that happened.

Offline Pecan

  • Plugin developer
  • Lives here!
  • ****
  • Posts: 2173
Re: Linux crashes
« Reply #4 on: January 12, 2006, 05:36:19 pm »
I don't know if this has anything to do with the
"crashes" in linux but..

would you please make sure that cbDragScroll is
not running/loading as a plugin.

With the newer revisions of CB svn, cbDragScroll
causes CB to crash on project close and app close.

I'll fix it soon

thanks
pecan

Offline gfgfd

  • Multiple posting newcomer
  • *
  • Posts: 10
Re: Linux crashes
« Reply #5 on: January 12, 2006, 06:51:58 pm »
CB crashes lot for me..  it's old svn version though.. i've been having trouble to compille latest svn for a while..

anyway main problems with CB on linux im having are:
* if i change settings (anything on settings->editor) i lose syntax hilighting..
* when few projects open and closing one CB sometimes crashes..
* sometimes when clicking selected text on editor mouse cursor changes to one i have for resizing window from upper left corner..
and i cant use mouse for anything anymore :/ after killing CB cursor is back ok.
* sometimes when closing CB. this is rare though.. usually with more than one project open.

Version 1.0 revision 1599 (gcc 3.4.4 Linux/unicode, build: Dec 28 2005 10:16:47)

sorry about bad english :P
« Last Edit: January 12, 2006, 06:58:55 pm by gfgfd »

Offline Der Meister

  • Regular
  • ***
  • Posts: 307
Re: Linux crashes
« Reply #6 on: January 13, 2006, 09:18:34 pm »
You'ren't the only one, but I'ven't spent much time with the Linux version.

Last crash I got was trying to close a project right clicking on it and selecting "close project". It "didn't work". I tried again with the same result. I tried to close Code::Blocks and it just died. I just cannot remember the last version that happened.
I think this is the same issue as the one I have now in revision 1746. And it seems that our good old friend wxApp::Yield is bothering is again.  8)

I had one project open and then hit "File->Close Workspace". The open editors are closed, but the project tree is not updated (i.e. it still shows the just closed project). Apart from this Code::Blocks seems to respond as normal execpt that it burns the full CPU-Power. I stopped it using ctr+c and got this backtrace:
Code: [Select]
Program received signal SIGINT, Interrupt.
[Switching to Thread 16384 (LWP 13923)]
0xb7814a7a in wxMenuBase::FindChildItem ()
   from /usr/lib/libwx_gtk2u_core-2.6.so.0
(gdb) bt
#0  0xb7814a7a in wxMenuBase::FindChildItem ()
   from /usr/lib/libwx_gtk2u_core-2.6.so.0
#1  0xb77a2b4a in wxMenuBar::FindMenuItem ()
   from /usr/lib/libwx_gtk2u_core-2.6.so.0
#2  0xb77a2b8b in wxMenuBar::FindMenuItem ()
   from /usr/lib/libwx_gtk2u_core-2.6.so.0
#3  0xb77a2bb7 in wxMenuBar::FindItem ()
   from /usr/lib/libwx_gtk2u_core-2.6.so.0
#4  0xb7817f66 in wxMenuBarBase::Enable ()
   from /usr/lib/libwx_gtk2u_core-2.6.so.0
#5  0x08083a31 in MainFrame::OnSearchMenuUpdateUI (this=0x81c0a00,
    event=@0xbfffdda0) at main.cpp:2607
#6  0xb74ed48b in wxAppConsole::HandleEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
#7  0xb7591a3b in wxEvtHandler::ProcessEventIfMatches ()
   from /usr/lib/libwx_baseu-2.6.so.0
#8  0xb7591da7 in wxEventHashTable::HandleEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
#9  0xb7592a2e in wxEvtHandler::ProcessEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
#10 0xb75929ce in wxEvtHandler::ProcessEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
#11 0xb75929ce in wxEvtHandler::ProcessEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
#12 0xb75929ce in wxEvtHandler::ProcessEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
#13 0xb75929ce in wxEvtHandler::ProcessEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
#14 0xb75929ce in wxEvtHandler::ProcessEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
#15 0xb7846d3a in wxWindowBase::TryParent ()
   from /usr/lib/libwx_gtk2u_core-2.6.so.0
#16 0xb75929e3 in wxEvtHandler::ProcessEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
#17 0xb7839819 in wxToolBarBase::UpdateWindowUI ()
   from /usr/lib/libwx_gtk2u_core-2.6.so.0
#18 0xb77b7261 in wxToolBar::OnInternalIdle ()
   from /usr/lib/libwx_gtk2u_core-2.6.so.0
#19 0xb77bff92 in wxAppBase::SendIdleEvents ()
   from /usr/lib/libwx_gtk2u_core-2.6.so.0
#20 0xb77bffc2 in wxAppBase::SendIdleEvents ()
   from /usr/lib/libwx_gtk2u_core-2.6.so.0
#21 0xb77bfed8 in wxAppBase::ProcessIdle ()
   from /usr/lib/libwx_gtk2u_core-2.6.so.0
#22 0xb77173d1 in wxPaletteBase::GetColoursCount ()
   from /usr/lib/libwx_gtk2u_core-2.6.so.0
#23 0xb6ebb663 in g_child_watch_add () from /usr/lib/libglib-2.0.so.0
#24 0xb6eb6b5d in g_source_remove_poll () from /usr/lib/libglib-2.0.so.0
#25 0xb6eb93dc in g_main_context_acquire () from /usr/lib/libglib-2.0.so.0
#26 0xb6eb98fb in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#27 0xb71127e2 in gtk_main_iteration () from /usr/lib/libgtk-x11-2.0.so.0
#28 0xb7717864 in wxApp::Yield () from /usr/lib/libwx_gtk2u_core-2.6.so.0
#29 0xb7e2cb4c in Manager::Yield () at app.h:297
#30 0xb7e2f919 in MessageManager::DebugLog (this=0x841fde0, msg=0x0)
    at messagemanager.cpp:172
#31 0xb7e6ceaf in ProjectManager::RemoveProjectFromAllDependencies (
    this=0x842f448, base=0x876d1c8) at string.h:477
#32 0xb7e724b7 in ProjectManager::CloseActiveProject (this=0x842f448,
    dontsave=true) at projectmanager.cpp:788
#33 0xb7e7272b in ProjectManager::CloseAllProjects (this=0x842f448, dontsave=4)
    at projectmanager.cpp:716
#34 0xb7e7283e in ProjectManager::CloseWorkspace (this=0x842f448)
    at projectmanager.cpp:1003
#35 0x0807e7ee in MainFrame::OnFileCloseWorkspace (this=0x81c0a00,
    event=@0xbfffe4a0) at main.cpp:1763
#36 0xb74ed48b in wxAppConsole::HandleEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
#37 0xb7591a3b in wxEvtHandler::ProcessEventIfMatches ()
 from /usr/lib/libwx_baseu-2.6.so.0
#38 0xb7591dd4 in wxEventHashTable::HandleEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
#39 0xb7592a2e in wxEvtHandler::ProcessEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
#40 0xb75929ce in wxEvtHandler::ProcessEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
#41 0xb75929ce in wxEvtHandler::ProcessEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
#42 0xb75929ce in wxEvtHandler::ProcessEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
#43 0xb75929ce in wxEvtHandler::ProcessEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
#44 0xb75929ce in wxEvtHandler::ProcessEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
#45 0xb77a3116 in wxMenu::FindMenuIdByMenuItem ()
   from /usr/lib/libwx_gtk2u_core-2.6.so.0
#46 0xb6f4f16f in g_cclosure_marshal_VOID__VOID ()
   from /usr/lib/libgobject-2.0.so.0
#47 0xb6f3628f in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#48 0xb6f4d813 in g_signal_has_handler_pending ()
   from /usr/lib/libgobject-2.0.so.0
#49 0xb6f4e9c7 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
#50 0xb6f4ed8d in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#51 0xb720d923 in gtk_widget_activate () from /usr/lib/libgtk-x11-2.0.so.0
#52 0xb7124573 in gtk_menu_shell_activate_item ()
   from /usr/lib/libgtk-x11-2.0.so.0
#53 0xb7124837 in gtk_menu_shell_activate_item ()
   from /usr/lib/libgtk-x11-2.0.so.0
#54 0xb711b104 in gtk_menu_reorder_child () from /usr/lib/libgtk-x11-2.0.so.0
#55 0xb711548a in gtk_marshal_VOID__UINT_STRING ()
   from /usr/lib/libgtk-x11-2.0.so.0
#56 0xb6f366c5 in g_cclosure_new_swap () from /usr/lib/libgobject-2.0.so.0
#57 0xb6f3628f in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#58 0xb6f4d39a in g_signal_has_handler_pending ()
   from /usr/lib/libgobject-2.0.so.0
#59 0xb6f4e5d7 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
#60 0xb6f4ed8d in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#61 0xb720da95 in gtk_widget_activate () from /usr/lib/libgtk-x11-2.0.so.0
#62 0xb7113a6e in gtk_propagate_event () from /usr/lib/libgtk-x11-2.0.so.0
#63 0xb7113d41 in gtk_main_do_event () from /usr/lib/libgtk-x11-2.0.so.0
#64 0xb7339bff in gdk_event_get_graphics_expose ()
   from /usr/lib/libgdk-x11-2.0.so.0
#65 0xb6eb6b5d in g_source_remove_poll () from /usr/lib/libglib-2.0.so.0
#66 0xb6eb93dc in g_main_context_acquire () from /usr/lib/libglib-2.0.so.0
#67 0xb6eb9740 in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
#68 0xb71130cd in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
#69 0xb77341b2 in wxEventLoop::Run () from /usr/lib/libwx_gtk2u_core-2.6.so.0
#70 0xb77bfc05 in wxAppBase::MainLoop ()
   from /usr/lib/libwx_gtk2u_core-2.6.so.0
#71 0xb77bfd42 in wxAppBase::OnRun () from /usr/lib/libwx_gtk2u_core-2.6.so.0
#72 0x08060548 in CodeBlocksApp::OnRun (this=0x0) at app.cpp:471
#73 0xb75318be in wxEntry () from /usr/lib/libwx_baseu-2.6.so.0
#74 0xb7531c1c in wxEntry () from /usr/lib/libwx_baseu-2.6.so.0
#75 0x0805fcea in main (argc=1, argv=0x0) at app.cpp:86
As you can see 'MessageManager::DebugLog' is called from the functions that close the project. And 'MessageManager::DebugLog' calls Manager::Yield and thus wxApp::Yield. And this functions just sets up another message-loop that keeps Code::Blocks still alive.
After closing Code::BLocks it crashes in "ProjectManager::CloseActiveProject". That is quite logical because after the shutdown is complete and the "new" message loop returns, execution will come back to "ProjectManager::CloseActiveProject" which then crashes because everything around is already destroyed.
I'm just wondering why this did never happen before? Or did 'MessageManager::DebugLog' never call Manager::Yield (or wxApp::Yield) until the changes during the last week?

PS: I'm running Code::Blocks Version 1.0 revision 1746 (gcc 3.4.4 Linux/unicode, build: Jan 13 2006 15:05:25) with *NO* plugins enabled.
Real Programmers don't comment their code. If it was hard to write, it should be hard to understand.
Real Programmers don't write in BASIC. Actually, no programmers write in BASIC, after the age of 12.

Offline thomas

  • Administrator
  • Lives here!
  • *****
  • Posts: 3979
Re: Linux crashes
« Reply #7 on: January 13, 2006, 09:24:58 pm »
Manager::Yield() does nothing during application shutdown, it actually can't be that. As soon as the application is told to quit, the very first thing that is done is to stop spawning new managers and to stop calling wxTheApp->Yield() (by setting Manager::isAppShuttingDown = true).

More likely, it is some other Yield which occurred at an earlier (unknown) point.
"We should forget about small efficiencies, say about 97% of the time: Premature quotation is the root of public humiliation."

Offline Der Meister

  • Regular
  • ***
  • Posts: 307
Re: Linux crashes
« Reply #8 on: January 13, 2006, 09:31:48 pm »
Yes, Yield was called when I clicked on "File->Close Workspace" - not when I tried to quit Code::Blocks.

But I think, I already wrote that.  :shock:
Anyway, the backtrace clearly shows what happened *before* I tried to close Code::Blocks.  8)
Real Programmers don't comment their code. If it was hard to write, it should be hard to understand.
Real Programmers don't write in BASIC. Actually, no programmers write in BASIC, after the age of 12.

Offline thomas

  • Administrator
  • Lives here!
  • *****
  • Posts: 3979
Re: Linux crashes
« Reply #9 on: January 13, 2006, 10:13:06 pm »
I stepped through MainFrame::OnFileCloseWorkspace from head to tail (on Windows, but nevertheless). There is not a single call to wxYield() anywhere near that part of code.

Other ideas?
"We should forget about small efficiencies, say about 97% of the time: Premature quotation is the root of public humiliation."

Offline thomas

  • Administrator
  • Lives here!
  • *****
  • Posts: 3979
Re: Linux crashes
« Reply #10 on: January 13, 2006, 10:24:54 pm »
Mind trying something? There are a few Yields which are possibly not needed. Please try what happens if you just comment these out rigorously.

Certainly not needed (ProcessEvent is synchronous):
app.cpp, line 423

Very likely not needed:
app.cpp, line 566

Possibly not needed (seems to make no difference here):
main.cpp 684
"We should forget about small efficiencies, say about 97% of the time: Premature quotation is the root of public humiliation."

Offline Der Meister

  • Regular
  • ***
  • Posts: 307
Re: Linux crashes
« Reply #11 on: January 13, 2006, 10:49:03 pm »
I stepped through MainFrame::OnFileCloseWorkspace from head to tail (on Windows, but nevertheless). There is not a single call to wxYield() anywhere near that part of code.

Other ideas?
Well, the backtrace says that 'ProjectManager::RemoveProjectFromAllDependencies' called 'MessageManager::DebugLog' and this one called 'Manager::Yield' and thus indirectly 'wxApp::Yield'. Should this behave different on Windows? Or did you use another revision? It seems as there were some changes in revision 1748 - maybe they solved the problem?

Quote from: thomas
Mind trying something?
I'll do that but at the moment I'm compiling revision 1751 - I would not be surprised if the problem is gone since revision 1748.
Real Programmers don't comment their code. If it was hard to write, it should be hard to understand.
Real Programmers don't write in BASIC. Actually, no programmers write in BASIC, after the age of 12.

Offline mandrav

  • Project Leader
  • Administrator
  • Lives here!
  • *****
  • Posts: 4291
    • Code::Blocks IDE
Re: Linux crashes
« Reply #12 on: January 13, 2006, 10:52:03 pm »
I got news for this strange bug. It seems it only hangs if the project you 're closing has any open files  :shock: . If it doesn't, it closes just fine. I 'm looking into it now...
Be patient!
This bug will be fixed soon...

Offline Der Meister

  • Regular
  • ***
  • Posts: 307
Re: Linux crashes
« Reply #13 on: January 13, 2006, 11:09:28 pm »
Got another nice backtrace:
Code: [Select]
Program received signal SIGINT, Interrupt.
[Switching to Thread 16384 (LWP 11492)]
0xb7707ee2 in wxCommandEvent::wxCommandEvent ()
   from /usr/lib/libwx_gtk2u_core-2.6.so.0
(gdb) bt
#0  0xb7707ee2 in wxCommandEvent::wxCommandEvent ()
   from /usr/lib/libwx_gtk2u_core-2.6.so.0
#1  0xb78461d3 in wxWindowBase::UpdateWindowUI ()
   from /usr/lib/libwx_gtk2u_core-2.6.so.0
#2  0xb7748de6 in wxWindow::OnInternalIdle ()
   from /usr/lib/libwx_gtk2u_core-2.6.so.0
#3  0xb77bff92 in wxAppBase::SendIdleEvents ()
   from /usr/lib/libwx_gtk2u_core-2.6.so.0
#4  0xb77bffc2 in wxAppBase::SendIdleEvents ()
   from /usr/lib/libwx_gtk2u_core-2.6.so.0
#5  0xb77bffc2 in wxAppBase::SendIdleEvents ()
   from /usr/lib/libwx_gtk2u_core-2.6.so.0
#6  0xb77bfed8 in wxAppBase::ProcessIdle ()
   from /usr/lib/libwx_gtk2u_core-2.6.so.0
#7  0xb77173d1 in wxPaletteBase::GetColoursCount ()
   from /usr/lib/libwx_gtk2u_core-2.6.so.0
#8  0xb6ebb663 in g_child_watch_add () from /usr/lib/libglib-2.0.so.0
#9  0xb6eb6b5d in g_source_remove_poll () from /usr/lib/libglib-2.0.so.0
#10 0xb6eb93dc in g_main_context_acquire () from /usr/lib/libglib-2.0.so.0
#11 0xb6eb98fb in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#12 0xb71127e2 in gtk_main_iteration () from /usr/lib/libgtk-x11-2.0.so.0
#13 0xb7717864 in wxApp::Yield () from /usr/lib/libwx_gtk2u_core-2.6.so.0
#14 0xb7595554 in wxYieldIfNeeded () from /usr/lib/libwx_baseu-2.6.so.0
#15 0xb787cc9a in wxGenericTreeCtrl::ScrollTo ()
   from /usr/lib/libwx_gtk2u_core-2.6.so.0
#16 0xb787f8ed in wxGenericTreeCtrl::EnsureVisible ()
   from /usr/lib/libwx_gtk2u_core-2.6.so.0
#17 0xb787fb8e in wxGenericTreeCtrl::DoSelectItem ()
   from /usr/lib/libwx_gtk2u_core-2.6.so.0
#18 0xb787fe70 in wxGenericTreeCtrl::SelectItem ()
   from /usr/lib/libwx_gtk2u_core-2.6.so.0
#19 0xb787fef6 in wxGenericTreeCtrl::OnInternalIdle ()
   from /usr/lib/libwx_gtk2u_core-2.6.so.0
#20 0xb77bff92 in wxAppBase::SendIdleEvents ()
   from /usr/lib/libwx_gtk2u_core-2.6.so.0
#21 0xb77bffc2 in wxAppBase::SendIdleEvents ()
   from /usr/lib/libwx_gtk2u_core-2.6.so.0
#22 0xb77bfed8 in wxAppBase::ProcessIdle ()
   from /usr/lib/libwx_gtk2u_core-2.6.so.0
#23 0xb77173d1 in wxPaletteBase::GetColoursCount ()
   from /usr/lib/libwx_gtk2u_core-2.6.so.0
#24 0xb6ebb663 in g_child_watch_add () from /usr/lib/libglib-2.0.so.0
#25 0xb6eb6b5d in g_source_remove_poll () from /usr/lib/libglib-2.0.so.0
#26 0xb6eb93dc in g_main_context_acquire () from /usr/lib/libglib-2.0.so.0
#27 0xb6eb9740 in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
#28 0xb71130cd in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
#29 0xb77958a4 in wxDialog::ShowModal () from /usr/lib/libwx_gtk2u_core-2.6.so.0
#30 0xb7dab260 in AnnoyingDialog::ShowModal (this=0xb75bc19c)
    at annoyingdialog.cpp:127
#31 0x08070dab in MainFrame::DoCheckCurrentLayoutForChanges (this=0x82218a8,
    canCancel=false) at main.cpp:924
#32 0x080710a3 in MainFrame::SaveWindowState (this=0x82218a8) at main.cpp:843
#33 0x0807e81c in MainFrame::OnApplicationClose (this=0x82218a8,
    event=@0xbfffe9c0) at main.cpp:1859
#34 0xb74ed48b in wxAppConsole::HandleEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
#35 0xb7591a3b in wxEvtHandler::ProcessEventIfMatches ()
   from /usr/lib/libwx_baseu-2.6.so.0
#36 0xb7591cf1 in wxEventHashTable::HandleEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
#37 0xb7592a2e in wxEvtHandler::ProcessEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
#38 0xb75929ce in wxEvtHandler::ProcessEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
#39 0xb75929ce in wxEvtHandler::ProcessEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
#40 0xb75929ce in wxEvtHandler::ProcessEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
#41 0xb75929ce in wxEvtHandler::ProcessEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
#42 0xb75929ce in wxEvtHandler::ProcessEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
#43 0xb7842046 in wxWindowBase::Close () from /usr/lib/libwx_gtk2u_core-2.6.so.0
#44 0xb773e357 in wxTopLevelWindowGTK::Init ()
   from /usr/lib/libwx_gtk2u_core-2.6.so.0
#45 0xb711548a in gtk_marshal_VOID__UINT_STRING ()
   from /usr/lib/libgtk-x11-2.0.so.0
#46 0xb6f3628f in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#47 0xb6f4d813 in g_signal_has_handler_pending ()
   from /usr/lib/libgobject-2.0.so.0
#48 0xb6f4e5d7 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
#49 0xb6f4ed8d in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#50 0xb720da95 in gtk_widget_activate () from /usr/lib/libgtk-x11-2.0.so.0
#51 0xb7113fec in gtk_main_do_event () from /usr/lib/libgtk-x11-2.0.so.0
#52 0xb7339bff in gdk_event_get_graphics_expose ()
   from /usr/lib/libgdk-x11-2.0.so.0
#53 0xb6eb6b5d in g_source_remove_poll () from /usr/lib/libglib-2.0.so.0
#54 0xb6eb93dc in g_main_context_acquire () from /usr/lib/libglib-2.0.so.0
#55 0xb6eb9740 in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
#56 0xb71130cd in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
#57 0xb77341b2 in wxEventLoop::Run () from /usr/lib/libwx_gtk2u_core-2.6.so.0
#58 0xb77bfc05 in wxAppBase::MainLoop () from /usr/lib/libwx_gtk2u_core-2.6.so.0
#59 0xb77bfd42 in wxAppBase::OnRun () from /usr/lib/libwx_gtk2u_core-2.6.so.0
#60 0x08060768 in CodeBlocksApp::OnRun (this=0xb75bc19c) at app.cpp:471
#61 0xb75318be in wxEntry () from /usr/lib/libwx_baseu-2.6.so.0
#62 0xb7531c1c in wxEntry () from /usr/lib/libwx_baseu-2.6.so.0
#63 0x0805ff0a in main (argc=1, argv=0xb75bc19c) at app.cpp:86
(gdb)
I just opened a project (from the recently used projects thus it opened a few files, too) and then closed Code::Blocks. It closes the project and then asks me if I want to save my changes to the layout - but I never changed anything. After clicking OK or Cancel (It doesn't matter - both lead to the same result) Code::Blocks hangs and bruns all CPU-Power. After stopping it with ctr+c I got the backtrace postet above.

PS: This happend in revision 1751 - but the old problem still exists, too.

Edit: Now Code::Blocks only demands me to save the layout if I did really change it - no idea why this behaviour changed, but seems to be correct. If it does not ask me Code::Blocks closes just fine. But if I change something to make Code::Blocks ask me I can reproduce this problem.

And: I applied the changes thomas suggested - but it seems as they don't change anything.
« Last Edit: January 13, 2006, 11:16:41 pm by Der Meister »
Real Programmers don't comment their code. If it was hard to write, it should be hard to understand.
Real Programmers don't write in BASIC. Actually, no programmers write in BASIC, after the age of 12.

Offline rickg22

  • Lives here!
  • ****
  • Posts: 2283
Re: Linux crashes
« Reply #14 on: January 13, 2006, 11:42:44 pm »
EDIT: Der Meister, if the "Extra stability" tweak (in settings) is still present in your version of Code::Blocks, try enabling it.

Yiannis:

I've experienced this kind of crashes since the good ol' times, remember? MessageManager::*log is responsible for the yields. You told me once that you needed those yields because you didn't want to wait 1 second after saving files, and that part has just been fixed (it was a codecompletion issue) - so the yields aren't needed anymore.

Keeping those Yields is very much like having straw pipes for your house plumbery, and trying to find and fix all the leaks with duct tape. Remove the yields, and you'll remove the problem.

What do you think?
« Last Edit: January 13, 2006, 11:45:59 pm by rickg22 »

Offline Game_Ender

  • Lives here!
  • ****
  • Posts: 551
Re: Linux crashes
« Reply #15 on: January 13, 2006, 11:49:55 pm »
Here is my build tag: Version 1.0 revision 1747 (gcc 4.0.2 Linux/unicode, build: Jan 13 2006 09:51:31)

When Icodecompeletion is completely disabled (ie plugin is never loaded) I am able to open and close projects fine as long as there are not any files open.  I can also shutdown codeblocks fine.

When I have codecompletion loaded and enabled (no cache) and I try to close Code::Blocks after closeing all open files it hangs a full CPU usage. That is the first backtrace.  The second backtrace shows what happens when codecompletion is loaded but disabled (through the menu options) we still have a CPU hang on close after the exact same conditions, it is basically the exact same backtrace.

Code: [Select]
Program received signal SIGINT, Interrupt.
[Switching to Thread -1228502240 (LWP 30556)]
0xb7a10b1e in wxMenuBase::FindChildItem ()
   from /usr/lib/libwx_gtk2u_core-2.6.so.0
(gdb) bt
#0  0xb7a10b1e in wxMenuBase::FindChildItem ()
   from /usr/lib/libwx_gtk2u_core-2.6.so.0
#1  0xb79ae678 in wxMenu::DoRemove () from /usr/lib/libwx_gtk2u_core-2.6.so.0
#2  0xb79ae715 in wxMenuBar::FindItem ()
   from /usr/lib/libwx_gtk2u_core-2.6.so.0
#3  0xb7a10582 in wxMenuBarBase::Enable ()
   from /usr/lib/libwx_gtk2u_core-2.6.so.0
#4  0xb665ae54 in CompilerGCC::OnUpdateUI (this=0x9196c50, event=@0x84acd78)
    at compilergcc.cpp:2350
#5  0xb772c2c1 in wxAppConsole::HandleEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
#6  0xb77b4edf in wxEvtHandler::ProcessEventIfMatches ()
   from /usr/lib/libwx_baseu-2.6.so.0
#7  0xb77b50b0 in wxEventHashTable::HandleEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
#8  0xb77b5261 in wxEvtHandler::ProcessEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
#9  0xb77b5207 in wxEvtHandler::ProcessEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
#10 0xb77b5207 in wxEvtHandler::ProcessEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
#11 0xb77b5207 in wxEvtHandler::ProcessEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
---Type <return> to continue, or q <return> to quit---
#12 0xb77b5207 in wxEvtHandler::ProcessEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
#13 0xb7a37024 in wxWindowBase::TryParent ()
   from /usr/lib/libwx_gtk2u_core-2.6.so.0
#14 0xb77b5217 in wxEvtHandler::ProcessEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
#15 0xb7a2e5d9 in wxToolBarBase::UpdateWindowUI ()
   from /usr/lib/libwx_gtk2u_core-2.6.so.0
#16 0xb79c24e7 in wxToolBar::OnInternalIdle ()
   from /usr/lib/libwx_gtk2u_core-2.6.so.0
#17 0xb79caf26 in wxAppBase::SendIdleEvents ()
   from /usr/lib/libwx_gtk2u_core-2.6.so.0
#18 0xb79caf5a in wxAppBase::SendIdleEvents ()
   from /usr/lib/libwx_gtk2u_core-2.6.so.0
#19 0xb79cb2ad in wxAppBase::ProcessIdle ()
   from /usr/lib/libwx_gtk2u_core-2.6.so.0
#20 0xb79224d9 in wxApp::Yield () from /usr/lib/libwx_gtk2u_core-2.6.so.0
#21 0xb6d9d750 in g_child_watch_add () from /usr/lib/libglib-2.0.so.0
#22 0xb6d9b4ee in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#23 0xb6d9e4f6 in g_main_context_check () from /usr/lib/libglib-2.0.so.0
#24 0xb6d9e9d8 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#25 0xb71626a8 in gtk_main_iteration () from /usr/lib/libgtk-x11-2.0.so.0
#26 0xb79221fd in wxApp::Yield () from /usr/lib/libwx_gtk2u_core-2.6.so.0
---Type <return> to continue, or q <return> to quit---
#27 0xb77b73b1 in wxYield () from /usr/lib/libwx_baseu-2.6.so.0
#28 0xb791abd5 in wxSafeYield () from /usr/lib/libwx_gtk2u_core-2.6.so.0
#29 0xb67305e1 in Parser::Clear (this=0x86e0430) at parser/parser.cpp:501
#30 0xb67306f1 in ~Parser (this=0x86e0430) at parser/parser.cpp:133
#31 0xb672b0a4 in NativeParser::RemoveParser (this=0x854c950,
    project=0x8896c30, useCache=true) at nativeparser.cpp:324
#32 0xb671de8d in CodeCompletion::OnProjectClosed (this=0x854c8e0,
    event=@0xbfbe028c) at codecompletion.cpp:608
#33 0xb772c2c1 in wxAppConsole::HandleEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0

#34 0xb77b4edf in wxEvtHandler::ProcessEventIfMatches ()
   from /usr/lib/libwx_baseu-2.6.so.0
#35 0xb77b50b0 in wxEventHashTable::HandleEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
#36 0xb77b5261 in wxEvtHandler::ProcessEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
#37 0xb77b5207 in wxEvtHandler::ProcessEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
#38 0xb77b5207 in wxEvtHandler::ProcessEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
#39 0xb77b5207 in wxEvtHandler::ProcessEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
#40 0xb77b5207 in wxEvtHandler::ProcessEvent ()
---Type <return> to continue, or q <return> to quit---
   from /usr/lib/libwx_baseu-2.6.so.0
#41 0xb77b5207 in wxEvtHandler::ProcessEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
#42 0xb7e2ba74 in PluginManager::NotifyPlugins (this=0x8385b28,
    event=@0xbfbe028c) at pluginmanager.cpp:528
#43 0xb7d8d45f in cbProject::NotifyPlugins (this=0x84acd78, type=10277)
    at cbproject.cpp:116
#44 0xb7d8dd02 in ~cbProject (this=0x8896c30) at cbproject.cpp:108
#45 0xb7e5044a in ProjectManager::CloseActiveProject (this=0x8514aa8,
    dontsave=true) at projectmanager.cpp:786
#46 0xb7e50505 in ProjectManager::CloseAllProjects (this=0x8514aa8,
    dontsave=false) at projectmanager.cpp:716
#47 0xb7e50685 in ProjectManager::CloseWorkspace (this=0x8514aa8)
    at projectmanager.cpp:997
#48 0x0807043a in MainFrame::DoCloseCurrentWorkspace (this=0x8a7f8c0)
    at main.cpp:1146
#49 0x08087c5f in MainFrame::OnApplicationClose (this=0x8a7f8c0,
    event=@0xbfbe0664) at main.cpp:1852
#50 0xb772c2c1 in wxAppConsole::HandleEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
#51 0xb77b4edf in wxEvtHandler::ProcessEventIfMatches ()
   from /usr/lib/libwx_baseu-2.6.so.0
#52 0xb77b50b0 in wxEventHashTable::HandleEvent ()
---Type <return> to continue, or q <return> to quit---
   from /usr/lib/libwx_baseu-2.6.so.0
#53 0xb77b5261 in wxEvtHandler::ProcessEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
#54 0xb77b5207 in wxEvtHandler::ProcessEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
#55 0xb77b5207 in wxEvtHandler::ProcessEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
#56 0xb77b5207 in wxEvtHandler::ProcessEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
#57 0xb77b5207 in wxEvtHandler::ProcessEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
#58 0xb77b5207 in wxEvtHandler::ProcessEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
#59 0xb77b5207 in wxEvtHandler::ProcessEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
#60 0xb77b5207 in wxEvtHandler::ProcessEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
#61 0xb77b5207 in wxEvtHandler::ProcessEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
#62 0xb77b5207 in wxEvtHandler::ProcessEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
#63 0xb77b5207 in wxEvtHandler::ProcessEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
---Type <return> to continue, or q <return> to quit---
#64 0xb77b5207 in wxEvtHandler::ProcessEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
#65 0xb77b5207 in wxEvtHandler::ProcessEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
#66 0xb77b5207 in wxEvtHandler::ProcessEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
#67 0xb7a3abab in wxWindowBase::Close ()
   from /usr/lib/libwx_gtk2u_core-2.6.so.0
#68 0xb7944bab in wxTopLevelWindowGTK::IsActive ()
   from /usr/lib/libwx_gtk2u_core-2.6.so.0
#69 0xb716502c in _gtk_marshal_BOOLEAN__BOXED ()
   from /usr/lib/libgtk-x11-2.0.so.0
#70 0xb6e093a8 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#71 0xb6e17b13 in g_signal_stop_emission () from /usr/lib/libgobject-2.0.so.0
#72 0xb6e18ec3 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
#73 0xb6e194c3 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#74 0xb724716f in gtk_widget_activate () from /usr/lib/libgtk-x11-2.0.so.0
#75 0xb7163d24 in gtk_main_do_event () from /usr/lib/libgtk-x11-2.0.so.0
#76 0xb736db2d in _gdk_events_queue () from /usr/lib/libgdk-x11-2.0.so.0
#77 0xb6d9b4ee in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#78 0xb6d9e4f6 in g_main_context_check () from /usr/lib/libglib-2.0.so.0
#79 0xb6d9e7e3 in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
#80 0xb7162e65 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
---Type <return> to continue, or q <return> to quit---
#81 0xb793b2a7 in wxEventLoop::Run () from /usr/lib/libwx_gtk2u_core-2.6.so.0
#82 0xb79cab6a in wxAppBase::MainLoop ()
   from /usr/lib/libwx_gtk2u_core-2.6.so.0
#83 0xb79cac4f in wxAppBase::OnRun () from /usr/lib/libwx_gtk2u_core-2.6.so.0
#84 0x080611ce in CodeBlocksApp::OnRun (this=0x8112338) at app.cpp:471
#85 0xb775fad4 in wxEntry () from /usr/lib/libwx_baseu-2.6.so.0
#86 0xb775fb88 in wxEntry () from /usr/lib/libwx_baseu-2.6.so.0
#87 0x0805fc44 in main (argc=1, argv=0xbfbe0ec4) at app.cpp:86

Second:
Code: [Select]
Program received signal SIGINT, Interrupt.
[Switching to Thread -1228653792 (LWP 30757)]
0xb798964c in wxMenu::DoRemove () from /usr/lib/libwx_gtk2u_core-2.6.so.0
(gdb) bt
#0  0xb798964c in wxMenu::DoRemove () from /usr/lib/libwx_gtk2u_core-2.6.so.0
#1  0xb7989715 in wxMenuBar::FindItem ()
   from /usr/lib/libwx_gtk2u_core-2.6.so.0
#2  0xb79eb582 in wxMenuBarBase::Enable ()
   from /usr/lib/libwx_gtk2u_core-2.6.so.0
#3  0x080785a4 in MainFrame::OnEditMenuUpdateUI (this=0x8a6f030,
    event=@0xbfeb92d4) at main.cpp:2531
#4  0xb77072c1 in wxAppConsole::HandleEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
#5  0xb778fedf in wxEvtHandler::ProcessEventIfMatches ()
   from /usr/lib/libwx_baseu-2.6.so.0
#6  0xb77900b0 in wxEventHashTable::HandleEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
#7  0xb7790261 in wxEvtHandler::ProcessEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
#8  0xb7790207 in wxEvtHandler::ProcessEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
#9  0xb7790207 in wxEvtHandler::ProcessEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
#10 0xb7790207 in wxEvtHandler::ProcessEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
#11 0xb7790207 in wxEvtHandler::ProcessEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
---Type <return> to continue, or q <return> to quit---
#12 0xb7790207 in wxEvtHandler::ProcessEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
#13 0xb7790207 in wxEvtHandler::ProcessEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
#14 0xb7790207 in wxEvtHandler::ProcessEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
#15 0xb7790207 in wxEvtHandler::ProcessEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
#16 0xb7790207 in wxEvtHandler::ProcessEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
#17 0xb7790207 in wxEvtHandler::ProcessEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
#18 0xb7790207 in wxEvtHandler::ProcessEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
#19 0xb7790207 in wxEvtHandler::ProcessEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
#20 0xb7790207 in wxEvtHandler::ProcessEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
#21 0xb7a12024 in wxWindowBase::TryParent ()
   from /usr/lib/libwx_gtk2u_core-2.6.so.0
#22 0xb7790217 in wxEvtHandler::ProcessEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
#23 0xb7a095d9 in wxToolBarBase::UpdateWindowUI ()
---Type <return> to continue, or q <return> to quit---
   from /usr/lib/libwx_gtk2u_core-2.6.so.0
#24 0xb799d4e7 in wxToolBar::OnInternalIdle ()
   from /usr/lib/libwx_gtk2u_core-2.6.so.0
#25 0xb79a5f26 in wxAppBase::SendIdleEvents ()
   from /usr/lib/libwx_gtk2u_core-2.6.so.0
#26 0xb79a5f5a in wxAppBase::SendIdleEvents ()
   from /usr/lib/libwx_gtk2u_core-2.6.so.0
#27 0xb79a62ad in wxAppBase::ProcessIdle ()
   from /usr/lib/libwx_gtk2u_core-2.6.so.0
#28 0xb78fd4d9 in wxApp::Yield () from /usr/lib/libwx_gtk2u_core-2.6.so.0
#29 0xb6d78750 in g_child_watch_add () from /usr/lib/libglib-2.0.so.0
#30 0xb6d764ee in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#31 0xb6d794f6 in g_main_context_check () from /usr/lib/libglib-2.0.so.0
#32 0xb6d799d8 in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#33 0xb713d6a8 in gtk_main_iteration () from /usr/lib/libgtk-x11-2.0.so.0
#34 0xb78fd1fd in wxApp::Yield () from /usr/lib/libwx_gtk2u_core-2.6.so.0
#35 0xb77923b1 in wxYield () from /usr/lib/libwx_baseu-2.6.so.0
#36 0xb78f5bd5 in wxSafeYield () from /usr/lib/libwx_gtk2u_core-2.6.so.0
#37 0xb670b5e1 in Parser::Clear (this=0x87ae500) at parser/parser.cpp:501
#38 0xb670b6f1 in ~Parser (this=0x87ae500) at parser/parser.cpp:133
#39 0xb67060a4 in NativeParser::RemoveParser (this=0x91313f8,
    project=0x88339f0, useCache=true) at nativeparser.cpp:324
#40 0xb66f8e8d in CodeCompletion::OnProjectClosed (this=0x9131388,
---Type <return> to continue, or q <return> to quit---
    event=@0xbfeb985c) at codecompletion.cpp:608
#41 0xb77072c1 in wxAppConsole::HandleEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
#42 0xb778fedf in wxEvtHandler::ProcessEventIfMatches ()
   from /usr/lib/libwx_baseu-2.6.so.0
#43 0xb77900b0 in wxEventHashTable::HandleEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
#44 0xb7790261 in wxEvtHandler::ProcessEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
#45 0xb7790207 in wxEvtHandler::ProcessEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
#46 0xb7790207 in wxEvtHandler::ProcessEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
#47 0xb7790207 in wxEvtHandler::ProcessEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
#48 0xb7790207 in wxEvtHandler::ProcessEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
#49 0xb7790207 in wxEvtHandler::ProcessEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
#50 0xb7e06a74 in PluginManager::NotifyPlugins (this=0x849faa0,
    event=@0xbfeb985c) at pluginmanager.cpp:528
#51 0xb7d6845f in cbProject::NotifyPlugins (this=0x84fe5a8, type=10277)
    at cbproject.cpp:116
---Type <return> to continue, or q <return> to quit---
#52 0xb7d68d02 in ~cbProject (this=0x88339f0) at cbproject.cpp:108
#53 0xb7e2b44a in ProjectManager::CloseActiveProject (this=0x84a3ca0,
    dontsave=true) at projectmanager.cpp:786
#54 0xb7e2b505 in ProjectManager::CloseAllProjects (this=0x84a3ca0,
    dontsave=false) at projectmanager.cpp:716
#55 0xb7e2b685 in ProjectManager::CloseWorkspace (this=0x84a3ca0)
    at projectmanager.cpp:997
#56 0x0807043a in MainFrame::DoCloseCurrentWorkspace (this=0x8a6f030)
    at main.cpp:1146
#57 0x08087c5f in MainFrame::OnApplicationClose (this=0x8a6f030,
    event=@0xbfeb9c34) at main.cpp:1852
#58 0xb77072c1 in wxAppConsole::HandleEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
#59 0xb778fedf in wxEvtHandler::ProcessEventIfMatches ()
   from /usr/lib/libwx_baseu-2.6.so.0
#60 0xb77900b0 in wxEventHashTable::HandleEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
#61 0xb7790261 in wxEvtHandler::ProcessEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
#62 0xb7790207 in wxEvtHandler::ProcessEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
#63 0xb7790207 in wxEvtHandler::ProcessEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
---Type <return> to continue, or q <return> to quit---
#64 0xb7790207 in wxEvtHandler::ProcessEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
#65 0xb7790207 in wxEvtHandler::ProcessEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
#66 0xb7790207 in wxEvtHandler::ProcessEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
#67 0xb7790207 in wxEvtHandler::ProcessEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
#68 0xb7790207 in wxEvtHandler::ProcessEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
#69 0xb7790207 in wxEvtHandler::ProcessEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
#70 0xb7790207 in wxEvtHandler::ProcessEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
#71 0xb7790207 in wxEvtHandler::ProcessEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
#72 0xb7790207 in wxEvtHandler::ProcessEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
#73 0xb7790207 in wxEvtHandler::ProcessEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
#74 0xb7790207 in wxEvtHandler::ProcessEvent ()
   from /usr/lib/libwx_baseu-2.6.so.0
#75 0xb7a15bab in wxWindowBase::Close ()
---Type <return> to continue, or q <return> to quit---
   from /usr/lib/libwx_gtk2u_core-2.6.so.0
#76 0xb791fbab in wxTopLevelWindowGTK::IsActive ()
   from /usr/lib/libwx_gtk2u_core-2.6.so.0
#77 0xb714002c in _gtk_marshal_BOOLEAN__BOXED ()
   from /usr/lib/libgtk-x11-2.0.so.0
#78 0xb6de43a8 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#79 0xb6df2b13 in g_signal_stop_emission () from /usr/lib/libgobject-2.0.so.0
#80 0xb6df3ec3 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
#81 0xb6df44c3 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#82 0xb722216f in gtk_widget_activate () from /usr/lib/libgtk-x11-2.0.so.0
#83 0xb713ed24 in gtk_main_do_event () from /usr/lib/libgtk-x11-2.0.so.0
#84 0xb7348b2d in _gdk_events_queue () from /usr/lib/libgdk-x11-2.0.so.0
#85 0xb6d764ee in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#86 0xb6d794f6 in g_main_context_check () from /usr/lib/libglib-2.0.so.0
#87 0xb6d797e3 in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
#88 0xb713de65 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
#89 0xb79162a7 in wxEventLoop::Run () from /usr/lib/libwx_gtk2u_core-2.6.so.0
#90 0xb79a5b6a in wxAppBase::MainLoop ()
   from /usr/lib/libwx_gtk2u_core-2.6.so.0
#91 0xb79a5c4f in wxAppBase::OnRun () from /usr/lib/libwx_gtk2u_core-2.6.so.0
#92 0x080611ce in CodeBlocksApp::OnRun (this=0x8112338) at app.cpp:471
#93 0xb773aad4 in wxEntry () from /usr/lib/libwx_baseu-2.6.so.0
#94 0xb773ab88 in wxEntry () from /usr/lib/libwx_baseu-2.6.so.0
---Type <return> to continue, or q <return> to quit---
#95 0x0805fc44 in main (argc=1, argv=0xbfeba494) at app.cpp:86

Offline rickg22

  • Lives here!
  • ****
  • Posts: 2283
Re: Linux crashes
« Reply #16 on: January 13, 2006, 11:54:33 pm »
Game Ender: Try by removing the codecompletion.so from the codeblocks directory. Or rename it to something like .txt (so it won't get loaded).

Does the problem arise?

See, i just noticed this:
Quote
#26 0xb79221fd in wxApp::Yield () from /usr/lib/libwx_gtk2u_core-2.6.so.0
---Type <return> to continue, or q <return> to quit---
#27 0xb77b73b1 in wxYield () from /usr/lib/libwx_baseu-2.6.so.0
#28 0xb791abd5 in wxSafeYield () from /usr/lib/libwx_gtk2u_core-2.6.so.0
#29 0xb67305e1 in Parser::Clear (this=0x86e0430) at parser/parser.cpp:501

I had tried to remove that yield before, but the application hangs :( well that was a while ago, maybe today it'll work.
« Last Edit: January 13, 2006, 11:56:28 pm by rickg22 »

Offline mandrav

  • Project Leader
  • Administrator
  • Lives here!
  • *****
  • Posts: 4291
    • Code::Blocks IDE
Re: Linux crashes
« Reply #17 on: January 13, 2006, 11:55:55 pm »
This has nothing to do with the yields.
I 've narrowed the problem down to a wxFlatNotebook-related operation. I 'm now trying to pin-point the exact spot and come up with the fix.
Be patient!
This bug will be fixed soon...

Offline atwins

  • Multiple posting newcomer
  • *
  • Posts: 13
Re: Linux crashes
« Reply #18 on: January 14, 2006, 01:08:55 am »
Just another input.

I was running 1750 on ubuntu.  All plugins active.  The 98% cpu activity hang occurs when a project is open with files open and I close the project or attempt to close the app.  (This has been true for some time now)

I then restarted and opened the same project but closed all open files.

I then closed the project, but the same thing happened.

I then restarted and opened the same project, and selected close the workspace (I think I'm using the default workspace) and it closed fine; the project closed too.  I could then exit Code::Blocks without incident.

I then restarted and opened the same project.  Remember the files had been closed a few steps ago.  So I tried to open a file from the project tree and got a crash with the Debug window.  (What should I do with the file it generated?)


Offline Game_Ender

  • Lives here!
  • ****
  • Posts: 551
Re: Linux crashes
« Reply #19 on: January 14, 2006, 01:22:48 am »
Game Ender: Try by removing the codecompletion.so from the codeblocks directory. Or rename it to something like .txt (so it won't get loaded).

Does the problem arise?

That is what I did when I meant said "codecompletion is disabled and not loaded".  Everything works fine, as long as you close project files before you quit.  Mandrav thanks for the bug hunt.
« Last Edit: January 14, 2006, 07:42:50 pm by Game_Ender »

Offline mandrav

  • Project Leader
  • Administrator
  • Lives here!
  • *****
  • Posts: 4291
    • Code::Blocks IDE
Re: Linux crashes
« Reply #20 on: January 14, 2006, 01:27:02 pm »
Update:
I 've found the root of the crash and now I 'm trying to think of a hack to get around it, cause that's what it needs...
Be patient!
This bug will be fixed soon...

Offline Game_Ender

  • Lives here!
  • ****
  • Posts: 551
Re: Linux crashes
« Reply #21 on: January 14, 2006, 07:43:37 pm »
Update:
I 've found the root of the crash and now I 'm trying to think of a hack to get around it, cause that's what it needs...

Isn't flatnotebook a little bit of a hack in and of itself?

EDIT- Check that, I got this very cool widget mixed up with something I saw someone else developing on the forum.
« Last Edit: January 14, 2006, 07:50:59 pm by Game_Ender »

Offline thomas

  • Administrator
  • Lives here!
  • *****
  • Posts: 3979
Re: Linux crashes
« Reply #22 on: January 15, 2006, 12:09:48 am »
EDIT: Der Meister, if the "Extra stability" tweak (in settings) is still present in your version of Code::Blocks, try enabling it.
Lol, Rick... that was a good one :)
"We should forget about small efficiencies, say about 97% of the time: Premature quotation is the root of public humiliation."

Offline rickg22

  • Lives here!
  • ****
  • Posts: 2283
Re: Linux crashes
« Reply #23 on: January 15, 2006, 04:13:59 am »
Heh I just checked, and it's gone :P - so Yiannis, where's the bug? We'd all like to see it.

Offline atwins

  • Multiple posting newcomer
  • *
  • Posts: 13
Re: Linux crashes
« Reply #24 on: January 15, 2006, 07:38:48 pm »
My latest.

With 1762 the project/app closing symptom has changed.  Now when I close a project,  I get the "waiting" cursor, the files are closed and leave the editor window, I can still interact with the menus.  The project tree is still showing the "closed" project.

So while "waiting" for the completion of the "close project", I closed the workspace, and the project tree went away.  Everything looked fine except the cursor is still "waiting".  Attempted to reopen the project and got the crash dialog.  (What to do with those xml files??)


sgsong

  • Guest
Re: Linux crashes
« Reply #25 on: January 18, 2006, 12:52:39 pm »
I still get the waiting cursor when close a project with open file. Any ideas?

Offline atwins

  • Multiple posting newcomer
  • *
  • Posts: 13
Re: Linux crashes
« Reply #26 on: January 18, 2006, 06:54:42 pm »
Running svn version 1789 on ubuntu...

I did some experiments.  If the only plugin I load is libcompiler, I can close projects fine.  The cursor is not "waiting" anymore.  I get the start-up screen in the editor.  Everything is fine.

With libpluginwizard as the only plugin, the same is true: projects close OK.
With libastyle alone, projects close OK.

With 2 or more plugins ( just about any 2), I can't close a project.  Get the "waiting" cursor.  Editor screen is cleared but the project tree remains...

So it appears that something about plugin management is the culprit here.  I have tried to isolate to a single plugin but with just about any 2 or more installed, then closing a project is a problem.  With only one, all is well.

Hope this is helpful to someone.



sgsong

  • Guest
Re: Linux crashes
« Reply #27 on: January 19, 2006, 06:30:11 am »
problem disappeared in revision 1804.

Offline atwins

  • Multiple posting newcomer
  • *
  • Posts: 13
Re: Linux crashes
« Reply #28 on: January 19, 2006, 08:10:59 pm »
Not in my 1804.   With a project file open,  closing the project still goes wierd.

Offline rickg22

  • Lives here!
  • ****
  • Posts: 2283
Re: Linux crashes
« Reply #29 on: January 19, 2006, 08:49:59 pm »
Please check if code completion is responsible  :( bwaaaa

Offline atwins

  • Multiple posting newcomer
  • *
  • Posts: 13
Re: Linux crashes
« Reply #30 on: January 19, 2006, 09:46:01 pm »
Running 1813 without code completion.  Same problem.  With a file open in the editor and more than one plugin loaded, closing the project causes the "waiting" cursor I described earlier.  BUT, closing Code::Blocks with the file open exits cleanly.  This is different and may be what sgsong reported about 1804. 

While I have code completion attention... I do note that I have an array of structures, and accessing as struct. something,  After the dot code completion comes up with all the global symbols.  Nothing related to the struct members.

And now for some reason, I can't build my old project.  "undefined main" when just compiling one file.  Oh well, that's yet another issue.


Offline atwins

  • Multiple posting newcomer
  • *
  • Posts: 13
Re: Linux crashes
« Reply #31 on: January 20, 2006, 02:10:02 am »
Now running 1816 and I can again build my project. 

Previous message was not as clear as I'd like.  Code completion is not the cause of the "close Project with files open" problem.

And as for code completion, when accessing one of an array of structures, I do not get members of the struct at the dot following the square indexing brackets.  code completion shows globals.  I guess the brackets and the i caused italics mode... Sorry for not previewing my last message.

So not using the i, I want to do
struct[k].member

Offline tiwag

  • Developer
  • Lives here!
  • *****
  • Posts: 1196
  • sailing away ...
    • tiwag.cb
Re: Linux crashes
« Reply #32 on: January 20, 2006, 02:15:59 am »
svn rev 1816 is running pretty well with linux ubuntu 5.10. wxGTK 2.6.1 unicode shared.

also keybinder and wxsmith plugins aren't crashing at the first glance

keybinder suffers on some key-combinations ( Ctrl-PRIOR, CTRL-NEXT, ... others maybe too)
wxsmith is subject of test right now ...

Offline Pecan

  • Plugin developer
  • Lives here!
  • ****
  • Posts: 2173
Re: Linux crashes
« Reply #33 on: January 20, 2006, 04:13:37 am »
svn rev 1816 is running pretty well with linux ubuntu 5.10. wxGTK 2.6.1 unicode shared.

also keybinder and wxsmith plugins aren't crashing at the first glance

keybinder suffers on some key-combinations ( Ctrl-PRIOR, CTRL-NEXT, ... others maybe too)
wxsmith is subject of test right now ...

Thanks for the reminder tiwag, I haven't checked on the key combnations yet.
It'll take me most of the  day tomorrow to get codeblocks running again.
I'ts running ubuntu on only an old  300 mhz lappie. Once running again I'll check out these bugs.

Please let me know about any other anomilies, etc

thanks
pecan
« Last Edit: January 20, 2006, 04:15:30 am by Pecan »

Offline Pecan

  • Plugin developer
  • Lives here!
  • ****
  • Posts: 2173
Re: Linux crashes
« Reply #34 on: January 20, 2006, 05:51:56 pm »
svn rev 1816 is running pretty well with linux ubuntu 5.10. wxGTK 2.6.1 unicode shared.

also keybinder and wxsmith plugins aren't crashing at the first glance

keybinder suffers on some key-combinations ( Ctrl-PRIOR, CTRL-NEXT, ... others maybe too)
wxsmith is subject of test right now ...

Hi tiwag, thanks for doing the keybinder testing.
I can't seem to get the same problems you're having.

I set three bookmarks
I set "go to previous bookmark"  to ctrl+prior
I set "go to next bookmark " to ctrl+next
I make SURE to hit the apply button.

The keys work. I then set secondary keys to Alt+Prior and Alt+Next
and they work also.

Could you give me a sequence of actions to make them fail.

thanks
pecan

EDIT: These keys work for me on both XP and ubuntu

Offline tiwag

  • Developer
  • Lives here!
  • *****
  • Posts: 1196
  • sailing away ...
    • tiwag.cb
Re: Linux crashes
« Reply #35 on: January 20, 2006, 06:01:49 pm »
for me Ctrl+Prior and Ctrl +Next are only working in Windows, where i have them by default assigned to the prev. & next bookmark keys.
when i wanted to do so in ubuntu, it scrolls the editor window horizontally.


[edit]
in the meanwhile i did a complete re-build of my C::B rev 1823 on ubuntu linux and tested again,

Ctrl+Prior & Ctrl+Next are working like a charm !!!

sorry Pecan, with my last C::B rev 1816 on ubuntu linux i must have forgotten to rebuild cbKeyBinder  :oops:
« Last Edit: January 20, 2006, 07:13:14 pm by tiwag »

Offline Der Meister

  • Regular
  • ***
  • Posts: 307
Re: Linux crashes
« Reply #36 on: January 20, 2006, 09:46:24 pm »
If finally found the reason for the lock-up if Code::Blocks wants to save a modified Layout during shutdown (I described it here) and probably a solution for this.

The problem is that the 'Edit' menu (and probably other menus) is re-created when the annoying dialog should get closed (or even before? I don't know, doesn't matter anyway). Although the function 'MainFrame::OnEditMenuUpdateUI' (and probably the handlers for the other menus, too) checks if Code::Blocks is shutting down (and does nothing if this is true) it does not help here because 'Manager::appShuttingDown' is still false here. If I set it to true just before 'MainFrame::SaveWindowState' is called from 'MainFrame::OnApplicationClose' (this is line 1869 in 'src/src/main.cpp') everything works perfect.

Here is the little hack I used to test this:
Code: [Select]
$ svn diff src/src/main.cpp Index: src/src/main.cpp
===================================================================
--- src/src/main.cpp    (revision 1823)
+++ src/src/main.cpp    (working copy)
@@ -1866,7 +1866,9 @@
         return;
     }
 
-    SaveWindowState();
+       Manager::appShuttingDown = true;
+       SaveWindowState();
+       Manager::appShuttingDown = false;
 
     m_LayoutManager.DetachPane(Manager::Get()->GetProjectManager()->GetNotebook());
     m_LayoutManager.DetachPane(Manager::Get()->GetMessageManager()->GetNotebook());
Of course, this is no real solution because I had to make 'Manager::appShuttingDown' public to get this hack working ( :wink: ) but this was the easiest way to test this. And I don't really know how this should be integrated into the currect interface/etc. without being a dirty hack.
Real Programmers don't comment their code. If it was hard to write, it should be hard to understand.
Real Programmers don't write in BASIC. Actually, no programmers write in BASIC, after the age of 12.

Offline rickg22

  • Lives here!
  • ****
  • Posts: 2283
Re: Linux crashes
« Reply #37 on: January 20, 2006, 10:18:06 pm »
If it's a matter of events, why not just disable the main Window and prevent the events from getting triggered in the first place?

Offline Der Meister

  • Regular
  • ***
  • Posts: 307
Re: Linux crashes
« Reply #38 on: January 20, 2006, 10:26:16 pm »
Well, if that works it would probably be a good solution. I just used this hack because I saw that 'MainFrame::OnEditMenuUpdateUI' already has this check and wanted to test if this function causes the problem. Another thing is that I'm still not really familiar with wxWidgets and Code::Blocks (from the view of a developer) - thus I don't find the obvious/best solution in most cases, yet. ;)
Real Programmers don't comment their code. If it was hard to write, it should be hard to understand.
Real Programmers don't write in BASIC. Actually, no programmers write in BASIC, after the age of 12.

Offline Der Meister

  • Regular
  • ***
  • Posts: 307
Re: Linux crashes
« Reply #39 on: January 21, 2006, 12:03:18 pm »
If it's a matter of events, why not just disable the main Window and prevent the events from getting triggered in the first place?
Did you mean 'wxWindow::Disable()'? This doesn't work. It just prevents the user from triggering new events but the UpdateUI-Events are still generated.

Anyway, I just found another solution that seems to be rather good (*no* hack ;) ) and it doesn't require big changes. 'MainFrame::OnApplicationClose' already sets a variable called 'MainFrame::m_InitiatedShutdown' to true to indicate that Code::Blocks will shut down. Just check this variable in addition to 'Manager::isappShuttingDown' and it works:
Code: [Select]
$ svn diff src/src/main.cpp
Index: src/src/main.cpp
===================================================================
--- src/src/main.cpp    (revision 1823)
+++ src/src/main.cpp    (working copy)
@@ -2462,7 +2462,7 @@
 
 void MainFrame::OnFileMenuUpdateUI(wxUpdateUIEvent& event)
 {
-    if(Manager::isappShuttingDown())
+    if(Manager::isappShuttingDown() || m_InitiatedShutdown)
     {
         event.Skip();
         return;
@@ -2500,7 +2500,7 @@
 
 void MainFrame::OnEditMenuUpdateUI(wxUpdateUIEvent& event)
 {
-    if(Manager::isappShuttingDown())
+    if(Manager::isappShuttingDown() || m_InitiatedShutdown)
     {
         event.Skip();
         return;
@@ -2566,7 +2566,7 @@
 
 void MainFrame::OnViewMenuUpdateUI(wxUpdateUIEvent& event)
 {
-    if(Manager::isappShuttingDown())
+    if(Manager::isappShuttingDown() || m_InitiatedShutdown)
     {
         event.Skip();
         return;
@@ -2607,7 +2607,7 @@
 
 void MainFrame::OnSearchMenuUpdateUI(wxUpdateUIEvent& event)
 {
-    if(Manager::isappShuttingDown())
+    if(Manager::isappShuttingDown() || m_InitiatedShutdown)
     {
         event.Skip();
         return;
@@ -2632,7 +2632,7 @@
 
 void MainFrame::OnProjectMenuUpdateUI(wxUpdateUIEvent& event)
 {
-    if(Manager::isappShuttingDown())
+    if(Manager::isappShuttingDown() || m_InitiatedShutdown)
     {
         event.Skip();
         return;
@@ -2653,7 +2653,7 @@
 
 void MainFrame::OnEditorUpdateUI(CodeBlocksEvent& event)
 {
-    if(Manager::isappShuttingDown())
+    if(Manager::isappShuttingDown() || m_InitiatedShutdown)
     {
         event.Skip();
         return;
@@ -2898,7 +2898,7 @@
 
 void MainFrame::OnRequestDockWindow(CodeBlocksDockEvent& event)
 {
-    if (Manager::isappShuttingDown())
+    if(Manager::isappShuttingDown() || m_InitiatedShutdown)
         return;
 
     wxPaneInfo info;
I'm not sure if the change in 'MainFrame::OnRequestDockWindow' is necessary but it should not harm anything.
Real Programmers don't comment their code. If it was hard to write, it should be hard to understand.
Real Programmers don't write in BASIC. Actually, no programmers write in BASIC, after the age of 12.

Offline tiwag

  • Developer
  • Lives here!
  • *****
  • Posts: 1196
  • sailing away ...
    • tiwag.cb
Re: Linux crashes
« Reply #40 on: January 21, 2006, 03:32:21 pm »
meister: i've applied your patch and still get a crash when doing the following:

1. start CB
2. open a simle console "hello world" project
3. do Menu : Project->Close Project 
4. if startpage is enabled, a blank startpage appears and  the Busy-cursor circulates forever ...
5.  do Menu: File->Quit, CB crashes with a  Segmentation fault  (it crashes regardless of the startpage setting)

the backtrace shows src/src/main.app:86 ( "IMPLEMENT_APP(CodeBlocksApp) " macro )
any ideas how to trace this ?
do you get the same crash ?

linux ubuntu 5.10 breezy, wxGTK2.6.1 unicode shared (from ubuntu repository)
backtrace attached

[attachment deleted by admin]
« Last Edit: January 21, 2006, 03:37:40 pm by tiwag »

Offline Der Meister

  • Regular
  • ***
  • Posts: 307
Re: Linux crashes
« Reply #41 on: January 21, 2006, 03:42:09 pm »
This patch was not for any crash.

It fixes the lock-up when Code::Blocks asks if the changed layout should be saved while Code::Blocks is shutting down.

The crash you are talking about is another problem with wxYield. I can reproduce this here, too, and I'm quite sure that it is a plugin-related issue. Here is the backtrace I got when I stopped Code::Blocks after closing the project:
Code: [Select]
#0  0xb74e5a3c in wxEvtHandler::ProcessEventIfMatches () from /usr/lib/libwx_baseu-2.6.so.0
#1  0xb758ddd4 in wxEventHashTable::HandleEvent () from /usr/lib/libwx_baseu-2.6.so.0
#2  0xb758ea2e in wxEvtHandler::ProcessEvent () from /usr/lib/libwx_baseu-2.6.so.0
#3  0xb758e9ce in wxEvtHandler::ProcessEvent () from /usr/lib/libwx_baseu-2.6.so.0
#4  0xb758e9ce in wxEvtHandler::ProcessEvent () from /usr/lib/libwx_baseu-2.6.so.0
#5  0xb758e9ce in wxEvtHandler::ProcessEvent () from /usr/lib/libwx_baseu-2.6.so.0
#6  0xb758e9ce in wxEvtHandler::ProcessEvent () from /usr/lib/libwx_baseu-2.6.so.0
#7  0xb758e9ce in wxEvtHandler::ProcessEvent () from /usr/lib/libwx_baseu-2.6.so.0
#8  0xb7842d3a in wxWindowBase::TryParent () from /usr/lib/libwx_gtk2u_core-2.6.so.0
#9  0xb758e9e3 in wxEvtHandler::ProcessEvent () from /usr/lib/libwx_baseu-2.6.so.0
#10 0xb7842d3a in wxWindowBase::TryParent () from /usr/lib/libwx_gtk2u_core-2.6.so.0
#11 0xb758e9e3 in wxEvtHandler::ProcessEvent () from /usr/lib/libwx_baseu-2.6.so.0
#12 0xb7842210 in wxWindowBase::UpdateWindowUI () from /usr/lib/libwx_gtk2u_core-2.6.so.0
#13 0xb7744de6 in wxWindow::OnInternalIdle () from /usr/lib/libwx_gtk2u_core-2.6.so.0
#14 0xb787be98 in wxGenericTreeCtrl::OnInternalIdle () from /usr/lib/libwx_gtk2u_core-2.6.so.0
#15 0xb77bbf92 in wxAppBase::SendIdleEvents () from /usr/lib/libwx_gtk2u_core-2.6.so.0
#16 0xb77bbfc2 in wxAppBase::SendIdleEvents () from /usr/lib/libwx_gtk2u_core-2.6.so.0
#17 0xb77bbfc2 in wxAppBase::SendIdleEvents () from /usr/lib/libwx_gtk2u_core-2.6.so.0
#18 0xb77bbed8 in wxAppBase::ProcessIdle () from /usr/lib/libwx_gtk2u_core-2.6.so.0
#19 0xb77133d1 in wxPaletteBase::GetColoursCount () from /usr/lib/libwx_gtk2u_core-2.6.so.0
#20 0xb6eb7663 in g_child_watch_add () from /usr/lib/libglib-2.0.so.0
#21 0xb6eb2b5d in g_source_remove_poll () from /usr/lib/libglib-2.0.so.0
#22 0xb6eb53dc in g_main_context_acquire () from /usr/lib/libglib-2.0.so.0
#23 0xb6eb58fb in g_main_context_iteration () from /usr/lib/libglib-2.0.so.0
#24 0xb710e7e2 in gtk_main_iteration () from /usr/lib/libgtk-x11-2.0.so.0
#25 0xb7713864 in wxApp::Yield () from /usr/lib/libwx_gtk2u_core-2.6.so.0
#26 0xb7591554 in wxYieldIfNeeded () from /usr/lib/libwx_baseu-2.6.so.0
#27 0xb7878c9a in wxGenericTreeCtrl::ScrollTo () from /usr/lib/libwx_gtk2u_core-2.6.so.0
#28 0xb787b8ed in wxGenericTreeCtrl::EnsureVisible () from /usr/lib/libwx_gtk2u_core-2.6.so.0
#29 0xb787bb8e in wxGenericTreeCtrl::DoSelectItem () from /usr/lib/libwx_gtk2u_core-2.6.so.0
#30 0xb787be70 in wxGenericTreeCtrl::SelectItem () from /usr/lib/libwx_gtk2u_core-2.6.so.0
#31 0xb787bef6 in wxGenericTreeCtrl::OnInternalIdle () from /usr/lib/libwx_gtk2u_core-2.6.so.0
#32 0xb77bbf92 in wxAppBase::SendIdleEvents () from /usr/lib/libwx_gtk2u_core-2.6.so.0
#33 0xb77bbfc2 in wxAppBase::SendIdleEvents () from /usr/lib/libwx_gtk2u_core-2.6.so.0
#34 0xb77bbed8 in wxAppBase::ProcessIdle () from /usr/lib/libwx_gtk2u_core-2.6.so.0
#35 0xb771fbb6 in wxBeginBusyCursor () from /usr/lib/libwx_gtk2u_core-2.6.so.0
#36 0xb7a126a3 in wxHtmlWindow::LoadPage () from /usr/lib/libwx_gtk2u_html-2.6.so.0
#37 0x0808af15 in StartHerePage (this=0x8b24368, owner=0x89dbc18, parent=0x89dbc18) at startherepage.cpp:75
#38 0x08076c7c in MainFrame::ShowHideStartPage (this=0x81b8128, forceHasProject=24) at editormanager.h:48
#39 0x080848a8 in MainFrame::OnProjectClosed (this=0x81b8128, event=@0x89dbc18) at main.cpp:2881
#40 0xb74e948b in wxAppConsole::HandleEvent () from /usr/lib/libwx_baseu-2.6.so.0
#41 0xb758da3b in wxEvtHandler::ProcessEventIfMatches () from /usr/lib/libwx_baseu-2.6.so.0
#42 0xb758dcf1 in wxEventHashTable::HandleEvent () from /usr/lib/libwx_baseu-2.6.so.0
#43 0xb758ea2e in wxEvtHandler::ProcessEvent () from /usr/lib/libwx_baseu-2.6.so.0
#44 0xb758e9ce in wxEvtHandler::ProcessEvent () from /usr/lib/libwx_baseu-2.6.so.0
#45 0xb758e9ce in wxEvtHandler::ProcessEvent () from /usr/lib/libwx_baseu-2.6.so.0
#46 0xb758e9ce in wxEvtHandler::ProcessEvent () from /usr/lib/libwx_baseu-2.6.so.0
#47 0xb758e9ce in wxEvtHandler::ProcessEvent () from /usr/lib/libwx_baseu-2.6.so.0
#48 0xb758e9ce in wxEvtHandler::ProcessEvent () from /usr/lib/libwx_baseu-2.6.so.0
#49 0xb758e9ce in wxEvtHandler::ProcessEvent () from /usr/lib/libwx_baseu-2.6.so.0
#50 0xb758e9ce in wxEvtHandler::ProcessEvent () from /usr/lib/libwx_baseu-2.6.so.0
#51 0xb758e9ce in wxEvtHandler::ProcessEvent () from /usr/lib/libwx_baseu-2.6.so.0
#52 0xb758e9ce in wxEvtHandler::ProcessEvent () from /usr/lib/libwx_baseu-2.6.so.0
#53 0xb758e9ce in wxEvtHandler::ProcessEvent () from /usr/lib/libwx_baseu-2.6.so.0
#54 0xb758e9ce in wxEvtHandler::ProcessEvent () from /usr/lib/libwx_baseu-2.6.so.0
#55 0xb758e9ce in wxEvtHandler::ProcessEvent () from /usr/lib/libwx_baseu-2.6.so.0
#56 0xb758e9ce in wxEvtHandler::ProcessEvent () from /usr/lib/libwx_baseu-2.6.so.0
#57 0xb758e9ce in wxEvtHandler::ProcessEvent () from /usr/lib/libwx_baseu-2.6.so.0
#58 0xb758e9ce in wxEvtHandler::ProcessEvent () from /usr/lib/libwx_baseu-2.6.so.0
#59 0xb758e9ce in wxEvtHandler::ProcessEvent () from /usr/lib/libwx_baseu-2.6.so.0
#60 0xb758e9ce in wxEvtHandler::ProcessEvent () from /usr/lib/libwx_baseu-2.6.so.0
#61 0xb758e9ce in wxEvtHandler::ProcessEvent () from /usr/lib/libwx_baseu-2.6.so.0
#62 0xb758e9ce in wxEvtHandler::ProcessEvent () from /usr/lib/libwx_baseu-2.6.so.0
#63 0xb758e9ce in wxEvtHandler::ProcessEvent () from /usr/lib/libwx_baseu-2.6.so.0
#64 0xb758e9ce in wxEvtHandler::ProcessEvent () from /usr/lib/libwx_baseu-2.6.so.0
#65 0xb7e3c38a in PluginManager::NotifyPlugins (this=0x8808370, event=@0xbfffdff0) at pluginmanager.cpp:528
#66 0xb7dad800 in cbProject::NotifyPlugins (this=0x89dbc18, type=144555032) at cbproject.cpp:116
#67 0xb7dad8d6 in ~cbProject (this=0x8a20d80) at cbproject.cpp:108
#68 0xb7e5983a in ProjectManager::CloseProject (this=0x84327c0, project=0x8a20d80, dontsave=128, refresh=false) at projectmanager.cpp:790
#69 0xb7e5993a in ProjectManager::CloseAllProjects (this=0x84327c0, dontsave=128) at projectmanager.h:25
#70 0xb7e59a4e in ProjectManager::CloseWorkspace (this=0x84327c0) at projectmanager.cpp:1012
#71 0x0807e1ee in MainFrame::OnFileCloseWorkspace (this=0x81b8128, event=@0xbfffe4a0) at main.cpp:1769
#72 0xb74e948b in wxAppConsole::HandleEvent () from /usr/lib/libwx_baseu-2.6.so.0
#73 0xb758da3b in wxEvtHandler::ProcessEventIfMatches () from /usr/lib/libwx_baseu-2.6.so.0
#74 0xb758ddd4 in wxEventHashTable::HandleEvent () from /usr/lib/libwx_baseu-2.6.so.0
#75 0xb758ea2e in wxEvtHandler::ProcessEvent () from /usr/lib/libwx_baseu-2.6.so.0
#76 0xb758e9ce in wxEvtHandler::ProcessEvent () from /usr/lib/libwx_baseu-2.6.so.0
#77 0xb758e9ce in wxEvtHandler::ProcessEvent () from /usr/lib/libwx_baseu-2.6.so.0
#78 0xb758e9ce in wxEvtHandler::ProcessEvent () from /usr/lib/libwx_baseu-2.6.so.0
#79 0xb758e9ce in wxEvtHandler::ProcessEvent () from /usr/lib/libwx_baseu-2.6.so.0
#80 0xb758e9ce in wxEvtHandler::ProcessEvent () from /usr/lib/libwx_baseu-2.6.so.0
#81 0xb758e9ce in wxEvtHandler::ProcessEvent () from /usr/lib/libwx_baseu-2.6.so.0
#82 0xb758e9ce in wxEvtHandler::ProcessEvent () from /usr/lib/libwx_baseu-2.6.so.0
#83 0xb758e9ce in wxEvtHandler::ProcessEvent () from /usr/lib/libwx_baseu-2.6.so.0
#84 0xb758e9ce in wxEvtHandler::ProcessEvent () from /usr/lib/libwx_baseu-2.6.so.0
#85 0xb758e9ce in wxEvtHandler::ProcessEvent () from /usr/lib/libwx_baseu-2.6.so.0
#86 0xb758e9ce in wxEvtHandler::ProcessEvent () from /usr/lib/libwx_baseu-2.6.so.0
#87 0xb758e9ce in wxEvtHandler::ProcessEvent () from /usr/lib/libwx_baseu-2.6.so.0
#88 0xb758e9ce in wxEvtHandler::ProcessEvent () from /usr/lib/libwx_baseu-2.6.so.0
#89 0xb758e9ce in wxEvtHandler::ProcessEvent () from /usr/lib/libwx_baseu-2.6.so.0
#90 0xb758e9ce in wxEvtHandler::ProcessEvent () from /usr/lib/libwx_baseu-2.6.so.0
#91 0xb758e9ce in wxEvtHandler::ProcessEvent () from /usr/lib/libwx_baseu-2.6.so.0
#92 0xb758e9ce in wxEvtHandler::ProcessEvent () from /usr/lib/libwx_baseu-2.6.so.0
#93 0xb758e9ce in wxEvtHandler::ProcessEvent () from /usr/lib/libwx_baseu-2.6.so.0
#94 0xb758e9ce in wxEvtHandler::ProcessEvent () from /usr/lib/libwx_baseu-2.6.so.0
#95 0xb758e9ce in wxEvtHandler::ProcessEvent () from /usr/lib/libwx_baseu-2.6.so.0
#96 0xb758e9ce in wxEvtHandler::ProcessEvent () from /usr/lib/libwx_baseu-2.6.so.0
#97 0xb779f116 in wxMenu::FindMenuIdByMenuItem () from /usr/lib/libwx_gtk2u_core-2.6.so.0
#98 0xb6f4b16f in g_cclosure_marshal_VOID__VOID () from /usr/lib/libgobject-2.0.so.0
#99 0xb6f3228f in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#100 0xb6f49813 in g_signal_has_handler_pending () from /usr/lib/libgobject-2.0.so.0
#101 0xb6f4a9c7 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
#102 0xb6f4ad8d in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#103 0xb7209923 in gtk_widget_activate () from /usr/lib/libgtk-x11-2.0.so.0
#104 0xb7120573 in gtk_menu_shell_activate_item () from /usr/lib/libgtk-x11-2.0.so.0
#105 0xb7120837 in gtk_menu_shell_activate_item () from /usr/lib/libgtk-x11-2.0.so.0
#106 0xb7117104 in gtk_menu_reorder_child () from /usr/lib/libgtk-x11-2.0.so.0
#107 0xb711148a in gtk_marshal_VOID__UINT_STRING () from /usr/lib/libgtk-x11-2.0.so.0
#108 0xb6f326c5 in g_cclosure_new_swap () from /usr/lib/libgobject-2.0.so.0
#109 0xb6f3228f in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#110 0xb6f4939a in g_signal_has_handler_pending () from /usr/lib/libgobject-2.0.so.0
#111 0xb6f4a5d7 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
#112 0xb6f4ad8d in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#113 0xb7209a95 in gtk_widget_activate () from /usr/lib/libgtk-x11-2.0.so.0
#114 0xb710fa6e in gtk_propagate_event () from /usr/lib/libgtk-x11-2.0.so.0
#115 0xb710fd41 in gtk_main_do_event () from /usr/lib/libgtk-x11-2.0.so.0
#116 0xb7335bff in gdk_event_get_graphics_expose () from /usr/lib/libgdk-x11-2.0.so.0
#117 0xb6eb2b5d in g_source_remove_poll () from /usr/lib/libglib-2.0.so.0
#118 0xb6eb53dc in g_main_context_acquire () from /usr/lib/libglib-2.0.so.0
#119 0xb6eb5740 in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
#120 0xb710f0cd in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
#121 0xb77301b2 in wxEventLoop::Run () from /usr/lib/libwx_gtk2u_core-2.6.so.0
#122 0xb77bbc05 in wxAppBase::MainLoop () from /usr/lib/libwx_gtk2u_core-2.6.so.0
#123 0xb77bbd42 in wxAppBase::OnRun () from /usr/lib/libwx_gtk2u_core-2.6.so.0
#124 0x080607f8 in CodeBlocksApp::OnRun (this=0x89dbc18) at app.cpp:471
#125 0xb752d8be in wxEntry () from /usr/lib/libwx_baseu-2.6.so.0
#126 0xb752dc1c in wxEntry () from /usr/lib/libwx_baseu-2.6.so.0
#127 0x0805ff9a in main (argc=1, argv=0x89dbc18) at app.cpp:86
Yet I don't know which plugin causes the problem but I will check it.
Real Programmers don't comment their code. If it was hard to write, it should be hard to understand.
Real Programmers don't write in BASIC. Actually, no programmers write in BASIC, after the age of 12.

Offline tiwag

  • Developer
  • Lives here!
  • *****
  • Posts: 1196
  • sailing away ...
    • tiwag.cb
Re: Linux crashes
« Reply #42 on: January 21, 2006, 03:58:03 pm »
...It fixes the lock-up when Code::Blocks asks if the changed layout should be saved while Code::Blocks is shutting down...

i never got this message cause i had disabled (don't annoy again) this dialog,
as i found out after searching a while now ;-)

Offline Der Meister

  • Regular
  • ***
  • Posts: 307
Re: Linux crashes
« Reply #43 on: January 21, 2006, 04:39:07 pm »
OK, some new information:
I can reproduce this problem even if all plugins are deactivated.

Another really weired problem:
If I have multiple files and the "start here page" open and then select the "start here page" Code::Blocks uses 100% of my CPU. But it still reacts and if I select another open file the CPU-usage goes down to normal values. Switching back to "start here page" goes up to 100% again, etc...
This is no problem with wxYield (at least I did not find any call to this function and there is no crash) but it looks as if the menus are continuously updated while the "start here page" has the focus. In combination with a call to wxYiel (as it is the case in the crash tiwag described) this would explain the high CPU load and the crash.
Real Programmers don't comment their code. If it was hard to write, it should be hard to understand.
Real Programmers don't write in BASIC. Actually, no programmers write in BASIC, after the age of 12.

Offline mandrav

  • Project Leader
  • Administrator
  • Lives here!
  • *****
  • Posts: 4291
    • Code::Blocks IDE
Re: Linux crashes
« Reply #44 on: January 21, 2006, 06:49:55 pm »
Another really weired problem:
<snip>

Thanks DerMeister, this looks like a crucial piece of info. Let me see what I can find...
Be patient!
This bug will be fixed soon...

Offline mandrav

  • Project Leader
  • Administrator
  • Lives here!
  • *****
  • Posts: 4291
    • Code::Blocks IDE
Re: Linux crashes
« Reply #45 on: February 04, 2006, 01:41:14 pm »
Yes, it is true. This bug has been fixed in revision1941 :lol:.

Quote from: source code comment
        // OK... this was the strangest/silliest/most-frustrating bug ever in the computer programs history...
        // Under wxGTK it seems that if you try to Check() a menu item if its container Menu is disabled,
        // you enter an endless message loop eating 100% CPU...
        // DARN!
        // This fixes the dreaded 'linux-hang-on-close-project' bug.
Be patient!
This bug will be fixed soon...

Offline atwins

  • Multiple posting newcomer
  • *
  • Posts: 13
Re: Linux crashes
« Reply #46 on: February 04, 2006, 09:50:51 pm »
Excellent!!!

Offline takeshi miya

  • Lives here!
  • ****
  • Posts: 1487
Re: Linux crashes
« Reply #47 on: February 04, 2006, 10:31:16 pm »
Frustrating bugs can be really frustrating.
As always, great work! :D