Code::Blocks Forums

User forums => Help => Topic started by: slashmais on September 26, 2015, 10:40:58 am

Title: Cannot Debug and CB terminates randomly
Post by: slashmais on September 26, 2015, 10:40:58 am
On debian using nightly 10499

1. while editing source-files CB terminates at random times (with resultant edit-losses)

2. cannot debug, following saved from popup-backtrace:
Code
ASSERT INFO:
/usr/include/wx-3.0/wx/strvararg.h(456): assert "(argtype & (wxFormatStringSpecifier<T>::value)) == argtype" failed in wxArgNormalizer(): format specifier doesn't match argument type

BACKTRACE:
[1] wxCheckDynamicCast(wxObject*, wxClassInfo*)
[2] GdbCmd_InfoRegisters::ParseOutput(wxString const&)
[3] GDB_driver::ParseOutput(wxString const&)
[4] DebuggerGDB::OnGDBOutput(wxCommandEvent&)
[5] wxAppConsoleBase::CallEventHandler(wxEvtHandler*, wxEventFunctor&, wxEvent&) const
[6] wxEvtHandler::ProcessEventIfMatchesId(wxEventTableEntryBase const&, wxEvtHandler*, wxEvent&)
[7] wxEventHashTable::HandleEvent(wxEvent&, wxEvtHandler*)
[8] wxEvtHandler::TryHereOnly(wxEvent&)
[9] wxEvtHandler::ProcessEventLocally(wxEvent&)
[10] wxEvtHandler::ProcessEvent(wxEvent&)
[11] wxEvtHandler::ProcessPendingEvents()
[12] wxAppConsoleBase::ProcessPendingEvents()
[13] wxApp::DoIdle()
[14] g_main_context_dispatch
[15] g_main_loop_run
[16] gtk_main
[17] wxGUIEventLoop::DoRun()
[18] wxEventLoopBase::Run()
[19] wxAppConsoleBase::MainLoop()
[20] wxEntry(int&, wchar_t**)
[21] __libc_start_main

Would appreciate any inputs on fixing this.
Title: Re: Cannot Debug and CB terminates randomly
Post by: ollydbg on September 26, 2015, 04:00:57 pm
On debian using nightly 10499

1. while editing source-files CB terminates at random times (with resultant edit-losses)

Can you disable the "Code Completion plugin", and see whether the random crash happens again? Also, if you got a crash stack track, please post it here, thanks.
Title: Re: Cannot Debug and CB terminates randomly
Post by: oBFusCATed on September 26, 2015, 04:43:03 pm
This has nothing to do with CC.
It is a wx30 assertion because of mismatching format specifiers and types (size_t and %x in this case).

Looking at it....
Title: Re: Cannot Debug and CB terminates randomly
Post by: oBFusCATed on September 26, 2015, 11:12:45 pm
I've fixed this in rev10504. Please test and report if it is working.
Also, can someone on windows verify the rev10505 does what is supposed to do?
Title: Re: Cannot Debug and CB terminates randomly
Post by: slashmais on September 27, 2015, 08:51:32 am
@ollydbg: disabled it and so far no crashes - will keep it disabled see what happens

re testing 10504: waiting for jens... (if he doesn't produce in the next day or two I'll dl the nightly svn & compile local)
(currently debugging the old way: printf is king)
Title: Re: Cannot Debug and CB terminates randomly
Post by: Jenna on September 27, 2015, 10:17:41 am
@ollydbg: disabled it and so far no crashes - will keep it disabled see what happens

re testing 10504: waiting for jens... (if he doesn't produce in the next day or two I'll dl the nightly svn & compile local)
(currently debugging the old way: printf is king)
I currently run a new build for Debian n my server.
Title: Re: Cannot Debug and CB terminates randomly
Post by: slashmais on October 03, 2015, 07:52:36 am
Can now debug - thx.

Still crashes at random times
last crash happened as I was doing copy-paste within same source-file.
(re-enabled CC - without it CB is useless)
Now disabling most of the plugins (default install enables a lot of them that I have no use for)
and will see what happens.

Enabled plugins:
  Autosave
  Code completion
  Compiler
  Debugger
  FileManager
  Files extension handler
  IncrementalSearch
  SmartIndentCpp
  Valgrind

Any of the above that I don't need for standard Cpp development?
Any of the disabled one's I should enable?

Will report back on outcome ...


Title: Re: Cannot Debug and CB terminates randomly
Post by: oBFusCATed on October 03, 2015, 11:47:54 am
Can you post backtraces from these crashes?
Title: Re: Cannot Debug and CB terminates randomly
Post by: slashmais on October 03, 2015, 01:38:40 pm
There are none. CB just disappears mid-edit: busy typing, then suddenly wallpaper...
Is there a way I can have CB keep a running log-to-file of calls?
Title: Re: Cannot Debug and CB terminates randomly
Post by: oBFusCATed on October 03, 2015, 02:48:21 pm
Start codeblocks under gdb, when it crashes run the bt command or even 'thread apply all bt'.
Starting codeblocks under gdb can be done with gdb codeblocks.
Also for more detailed info you can install the dbg/debuginfo packages if they are available.
Title: Re: Cannot Debug and CB terminates randomly
Post by: slashmais on October 05, 2015, 08:57:03 am
(running cb in gdb)

got following errors from cb:
1.
Code
ASSERT INFO:
../src/common/wincmn.cpp(372): assert "id == wxID_ANY || (id >= 0 && id < 32767) || (id >= wxID_AUTO_LOWEST && id <= wxID_AUTO_HIGHEST)" failed in CreateBase(): invalid id value

BACKTRACE:
[1] wxWindowBase::CreateBase(wxWindowBase*, int, wxPoint const&, wxSize const&, long, wxString const&)
[2] wxWindowBase::CreateBase(wxWindowBase*, int, wxPoint const&, wxSize const&, long, wxValidator const&, wxString const&)
[3] wxWindow::Create(wxWindow*, int, wxPoint const&, wxSize const&, long, wxString const&)
[4] wxControl::Create(wxWindow*, int, wxPoint const&, wxSize const&, long, wxValidator const&, wxString const&)
[5] wxScintilla::Create(wxWindow*, int, wxPoint const&, wxSize const&, long, wxString const&)
[6] wxScintilla::wxScintilla(wxWindow*, int, wxPoint const&, wxSize const&, long, wxString const&)
[7] cbStyledTextCtrl::cbStyledTextCtrl(wxWindow*, int, wxPoint const&, wxSize const&, long)
[8] cbEditor::CreateEditor()
[9] cbEditor::DoInitializations(wxString const&, LoaderBase*)
[10] cbEditor::cbEditor(wxWindow*, wxString const&, EditorColourSet*)
[11] EditorManager::New(wxString const&)
[12] wxStringTokenizer::~wxStringTokenizer()
[13] wxAppConsoleBase::CallEventHandler(wxEvtHandler*, wxEventFunctor&, wxEvent&) const
[14] wxEvtHandler::ProcessEventIfMatchesId(wxEventTableEntryBase const&, wxEvtHandler*, wxEvent&)
[15] wxEventHashTable::HandleEvent(wxEvent&, wxEvtHandler*)
[16] wxEvtHandler::TryHereOnly(wxEvent&)
[17] wxEvtHandler::DoTryChain(wxEvent&)
[18] wxEvtHandler::ProcessEvent(wxEvent&)
[19] wxEvtHandler::SafelyProcessEvent(wxEvent&)
[20] wxMenuBase::SendEvent(int, int)
[21] g_closure_invoke
[22] g_signal_emit_valist
[23] g_signal_emit
[24] gtk_widget_activate
[25] gtk_menu_shell_activate_item
[26] g_closure_invoke
[27] g_signal_emit_valist
[28] g_signal_emit
[29] gtk_propagate_event
[30] gtk_main_do_event
[31] g_main_context_dispatch
[32] g_main_context_iteration
[33] gtk_main_iteration
[34] wxWindow::DoPopupMenu(wxMenu*, int, int)
[35] wxWindowBase::PopupMenu(wxMenu*, int, int)
[36] wxStringTokenizer::~wxStringTokenizer()
[37] wxAppConsoleBase::CallEventHandler(wxEvtHandler*, wxEventFunctor&, wxEvent&) const
[38] wxEvtHandler::ProcessEventIfMatchesId(wxEventTableEntryBase const&, wxEvtHandler*, wxEvent&)
[39] wxEventHashTable::HandleEvent(wxEvent&, wxEvtHandler*)
[40] wxEvtHandler::TryHereOnly(wxEvent&)
[41] wxEvtHandler::DoTryChain(wxEvent&)
[42] wxEvtHandler::ProcessEvent(wxEvent&)
[43] wxWindowBase::TryAfter(wxEvent&)
[44] wxEvtHandler::SafelyProcessEvent(wxEvent&)
[45] wxToolBarBase::OnLeftClick(int, bool)
[46] g_signal_emit_valist
[47] g_signal_emit_by_name
[48] g_signal_emit_valist
[49] g_signal_emit
[50] g_signal_emit_valist
[51] g_signal_emit
[52] g_closure_invoke
[53] g_signal_emit_valist
[54] g_signal_emit
[55] gtk_propagate_event
[56] gtk_main_do_event
[57] g_main_context_dispatch
[58] g_main_loop_run
[59] gtk_main
[60] wxGUIEventLoop::DoRun()
[61] wxEventLoopBase::Run()
[62] wxAppConsoleBase::MainLoop()
[63] wxEntry(int&, wchar_t**)
[64] __libc_start_main

2.
Code
ASSERT INFO:
../src/aui/auibook.cpp(2239): assert "idx != (-1)" failed in SetSelectionToWindow(): invalid notebook page

BACKTRACE:
[1] wxAuiNotebook::SetSelectionToWindow(wxWindow*)
[2] wxAuiNotebook::RemovePage(unsigned long)
[3] cbAuiNotebook::RemovePage(unsigned long)
[4] wxAuiNotebook::DeletePage(unsigned long)
[5] cbAuiNotebook::DeletePage(unsigned long)
[6] EditorManager::Close(EditorBase*, bool)
[7] EditorManager::OnPageClose(wxAuiNotebookEvent&)
[8] wxAppConsoleBase::CallEventHandler(wxEvtHandler*, wxEventFunctor&, wxEvent&) const
[9] wxEvtHandler::ProcessEventIfMatchesId(wxEventTableEntryBase const&, wxEvtHandler*, wxEvent&)
[10] wxEventHashTable::HandleEvent(wxEvent&, wxEvtHandler*)
[11] wxEvtHandler::TryHereOnly(wxEvent&)
[12] wxEvtHandler::DoTryChain(wxEvent&)
[13] wxEvtHandler::ProcessEvent(wxEvent&)
[14] wxWindowBase::TryAfter(wxEvent&)
[15] wxAuiNotebook::OnTabButton(wxAuiNotebookEvent&)
[16] wxAppConsoleBase::CallEventHandler(wxEvtHandler*, wxEventFunctor&, wxEvent&) const
[17] wxEvtHandler::ProcessEventIfMatchesId(wxEventTableEntryBase const&, wxEvtHandler*, wxEvent&)
[18] wxEventHashTable::HandleEvent(wxEvent&, wxEvtHandler*)
[19] wxEvtHandler::TryHereOnly(wxEvent&)
[20] wxEvtHandler::DoTryChain(wxEvent&)
[21] wxEvtHandler::ProcessEvent(wxEvent&)
[22] wxWindowBase::TryAfter(wxEvent&)
[23] wxAuiTabCtrl::OnLeftUp(wxMouseEvent&)
[24] wxAppConsoleBase::CallEventHandler(wxEvtHandler*, wxEventFunctor&, wxEvent&) const
[25] wxEvtHandler::ProcessEventIfMatchesId(wxEventTableEntryBase const&, wxEvtHandler*, wxEvent&)
[26] wxEventHashTable::HandleEvent(wxEvent&, wxEvtHandler*)
[27] wxEvtHandler::TryHereOnly(wxEvent&)
[28] wxEvtHandler::ProcessEventLocally(wxEvent&)
[29] wxEvtHandler::ProcessEvent(wxEvent&)
[30] wxEvtHandler::SafelyProcessEvent(wxEvent&)
[31] g_closure_invoke
[32] g_signal_emit_valist
[33] g_signal_emit
[34] gtk_propagate_event
[35] gtk_main_do_event
[36] g_main_context_dispatch
[37] g_main_loop_run
[38] gtk_main
[39] wxGUIEventLoop::DoRun()
[40] wxEventLoopBase::Run()
[41] wxAppConsoleBase::MainLoop()
[42] wxEntry(int&, wchar_t**)
[43] __libc_start_main

3. (got this one 6 times and then cb crashed)
Code
ASSERT INFO:
../src/common/menucmn.cpp(260): assert "(itemid >= 0 && itemid < SHRT_MAX) || (itemid >= wxID_AUTO_LOWEST && itemid <= wxID_AUTO_HIGHEST)" failed in wxMenuItemBase(): invalid itemid value

BACKTRACE:
[1] wxMenuItemBase::wxMenuItemBase(wxMenu*, int, wxString const&, wxString const&, wxItemKind, wxMenu*)
[2] wxMenuItem::wxMenuItem(wxMenu*, int, wxString const&, wxString const&, wxItemKind, wxMenu*)
[3] wxMenuItemBase::New(wxMenu*, int, wxString const&, wxString const&, wxItemKind, wxMenu*)
[4] wxStringTokenizer::~wxStringTokenizer()
[5] wxStringTokenizer::~wxStringTokenizer()
[6] wxStringTokenizer::~wxStringTokenizer()
[7] wxStringTokenizer::~wxStringTokenizer()
[8] Manager::ProcessEvent(CodeBlocksEvent&)
[9] cbPlugin::Attach()
[10] PluginManager::AttachPlugin(cbPlugin*, bool)
[11] PluginsConfigurationDlg::OnToggle(wxCommandEvent&)
[12] wxAppConsoleBase::CallEventHandler(wxEvtHandler*, wxEventFunctor&, wxEvent&) const
[13] wxEvtHandler::ProcessEventIfMatchesId(wxEventTableEntryBase const&, wxEvtHandler*, wxEvent&)
[14] wxEventHashTable::HandleEvent(wxEvent&, wxEvtHandler*)
[15] wxEvtHandler::TryHereOnly(wxEvent&)
[16] wxEvtHandler::ProcessEventLocally(wxEvent&)
[17] wxEvtHandler::ProcessEvent(wxEvent&)
[18] wxWindowBase::TryAfter(wxEvent&)
[19] wxEvtHandler::SafelyProcessEvent(wxEvent&)
[20] g_signal_emit_valist
[21] g_signal_emit
[22] g_signal_emit_valist
[23] g_signal_emit
[24] g_closure_invoke
[25] g_signal_emit_valist
[26] g_signal_emit
[27] gtk_propagate_event
[28] gtk_main_do_event
[29] g_main_context_dispatch
[30] g_main_loop_run
[31] gtk_main
[32] wxGUIEventLoop::DoRun()
[33] wxEventLoopBase::Run()
[34] wxDialog::ShowModal()
[35] PluginManager::Configure()
[36] wxStringTokenizer::~wxStringTokenizer()
[37] wxAppConsoleBase::CallEventHandler(wxEvtHandler*, wxEventFunctor&, wxEvent&) const
[38] wxEvtHandler::ProcessEventIfMatchesId(wxEventTableEntryBase const&, wxEvtHandler*, wxEvent&)
[39] wxEventHashTable::HandleEvent(wxEvent&, wxEvtHandler*)
[40] wxEvtHandler::TryHereOnly(wxEvent&)
[41] wxEvtHandler::DoTryChain(wxEvent&)
[42] wxEvtHandler::ProcessEvent(wxEvent&)
[43] wxWindowBase::TryAfter(wxEvent&)
[44] wxEvtHandler::SafelyProcessEvent(wxEvent&)
[45] wxMenuBase::SendEvent(int, int)
[46] g_closure_invoke
[47] g_signal_emit_valist
[48] g_signal_emit
[49] gtk_widget_activate
[50] gtk_menu_shell_activate_item
[51] g_closure_invoke
[52] g_signal_emit_valist
[53] g_signal_emit
[54] gtk_propagate_event
[55] gtk_main_do_event
[56] g_main_context_dispatch
[57] g_main_loop_run
[58] gtk_main
[59] wxGUIEventLoop::DoRun()
[60] wxEventLoopBase::Run()
[61] wxAppConsoleBase::MainLoop()
[62] wxEntry(int&, wchar_t**)
[63] __libc_start_main

after crash in gdb:
Code
(gdb) bt
#0  0x00007ffff258179b in raise (sig=5) at ../nptl/sysdeps/unix/sysv/linux/pt-raise.c:37
#1  0x00007ffff4c2a32d in ?? () from /usr/lib/x86_64-linux-gnu/libwx_baseu-3.0.so.0
Cannot access memory at address 0x7fffffff83c8
(gdb)
Title: Re: Cannot Debug and CB terminates randomly
Post by: oBFusCATed on October 05, 2015, 09:04:49 am
Wow.
Can you please install the dbg package, this will make the backtraces (at least in gdb) more meaning full?
Or even better post detailed steps how to reproduce every problem.
Title: Re: Cannot Debug and CB terminates randomly
Post by: slashmais on October 06, 2015, 09:06:00 am
will have to make time for it - hopefully this weekend
Title: Re: Cannot Debug and CB terminates randomly
Post by: slashmais on December 25, 2015, 11:22:03 am
Switching to Ultimate++ (http://www.ultimatepp.org/)
Title: Re: Cannot Debug and CB terminates randomly
Post by: raynebc on December 25, 2015, 07:45:10 pm
How unhelpful.
Title: Re: Cannot Debug and CB terminates randomly
Post by: oBFusCATed on December 28, 2015, 05:51:53 pm
slashmais: Which version are you using? All these should be fixed in the latest one.
Title: Re: Cannot Debug and CB terminates randomly
Post by: slashmais on February 04, 2016, 07:04:37 am
OK, seems to be fixed - I've used the latest version on/off for a few weeks now

Makes me happy because the CB debugger is streets better than the Ultimatepp one, same for the CB implementation/use of Valgrind (Valgrind on Ultimatepp is rubbish)

Thank you to the devs

In favor of  Ultimatepp I must say that for GUI development it is UNBEATABLE. I've tried them all (WX, QT, you-name-it..) and Upp is by far the faster and easier of them all - you just need to look past some minor conceptual-weirdness (e.g. package/nests instead of applications/projects/systems) and the rest is just intuitively there. If you are into GUI development do yourself a favor and try it. My personal dev-setup is Upp for GUI and (now, again) CB for other/supporting modules (a wishing-dream is to have an IDE where CB and Upp are merged, or at least co-operating seamlessly)