Author Topic: Linux crashes  (Read 21756 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: 2174
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,
    [email protected]) 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,
    [email protected]) 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,
    [email protected]) 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 »