User forums > Using Code::Blocks
Linux crashes
gfgfd:
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
Der Meister:
--- Quote from: Ceniza 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.
--- End quote ---
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: ---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
--- End code ---
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.
thomas:
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.
Der Meister:
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)
thomas:
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?
Navigation
[0] Message Index
[#] Next page
[*] Previous page
Go to full version