Developer forums (C::B DEVELOPMENT STRICTLY!) > CodeCompletion redesign
Clang CC
BlueHazzard:
regarding this crash:
--- Quote ---Quote from: MortenMacFly on 27-02-2017, 07:06:00
Quote from: BlueHazzard on 27-02-2017, 01:17:55
> 55: if (FileTypeOf(f->relativeFilename) == ftHeader &&
I would also verify "f"not being NULL:
if (f && FileTypeOf(f->relativeFilename) == ftHeader &&
...especially on shut-down.
Sorry this is in compiler.dll and not in the clanglib plugin.
--- End quote ---
with the bt:
--- Code: ---AddrPC Params
02FEABF6 0000002E FFFFFFFF 0028BAD4 wxmsw28u_gcc_custom.dll!wxStringBase::rfind
02FED382 0000002E 00000001 0028BB64 wxmsw28u_gcc_custom.dll!wxString::Find
02FED3DB 2F772C98 0000002E 0028E488 wxmsw28u_gcc_custom.dll!wxString::AfterLast
618734B6 2F772C98 00000001 00000000 codeblocks.dll!FileTypeOf
0BA78572 2D171550 0E8AA3B0 2B0D5A50 compiler.dll!SetupIncludeDirs [codeblocks_sf/src/plugins/compilergcc/compilerMINGWgenerator.cpp @ 55]
53: {
54: ProjectFile* f = *it;
> 55: if (FileTypeOf(f->relativeFilename) == ftHeader &&
56: f->compile)
57: {
6181B4CA 2AA20288 0A84315C 00000024 codeblocks.dll!CompilerCommandGenerator::Init
0BA75442 2AA20288 0028E488 00000000 compiler.dll!GetCommandGenerator [codeblocks_sf/src/plugins/compilergcc/compilerMINGW.cpp @ 51]
49: {
50: CompilerMINGWGenerator *generator = new CompilerMINGWGenerator;
> 51: generator->Init(project);
52: return generator;
53: }
0A756A6E 063E0198 2F789598 2D29D1C8 clanglib.dll!GetCompileCommand [ClangLib/src/clangplugin.cpp @ 1186]
1184: if (compileCommandStr.IsEmpty())
1185: compileCommandStr = wxT("$options $includes");
> 1186: CompilerCommandGenerator* gen = comp->GetCommandGenerator(proj);
1187: if (gen)
1188: gen->GenerateCommandLine(compileCommandStr, target, pf, filename,
0A757958 2D29D070 FFFFFFFC 0028C484 clanglib.dll!UpdateCompileCommand [ClangLib/src/clangplugin.cpp @ 1262]
1260: int ClangPlugin::UpdateCompileCommand(cbEditor* ed)
1261: {
> 1262: std::vector<wxString> compileCommand = GetCompileCommand( ed->GetProjectFile(), ed->GetFilename() );
1263:
1264: if (compileCommand.empty())
0A753B54 0028C518 0028C484 0028C3D4 clanglib.dll!OnEditorActivate [ClangLib/src/clangplugin.cpp @ 656]
654: if(m_TranslUnitId == wxNOT_FOUND)
655: m_TranslUnitId = GetTranslationUnitId(filename);
> 656: UpdateCompileCommand(ed);
657: if (m_TranslUnitId == wxNOT_FOUND)
658: {
0A7B008F 0028C518 0028C418 06332D18 clanglib.dll!Call [wxWidgets-2.8.12/include/wx/buffer.h @ 127]
125: #endif // wxABI_VERSION >= 20804
126:
> 127: DEFINE_BUFFER(wxCharBuffer, char, wxStrdupA);
128: #if wxABI_VERSION >= 20804
129: DEFINE_WRITABLE_BUFFER(wxWritableCharBuffer, wxCharBuffer, char);
6188D58E 0028C518 FFFFFFFC 0028C454 codeblocks.dll!Manager::ProcessEvent
618A321B 0028C518 FFFFFFFF 00000000 codeblocks.dll!PluginManager::NotifyPlugins
61856F4D 0028D044 2D3508C8 0028C5D4 codeblocks.dll!EditorManager::OnPageChanged
02FA1261 06331094 61856DBA FFFFFFFC wxmsw28u_gcc_custom.dll!wxAppConsole::HandleEvent
0302436E 61C32430 06331094 0028D044 wxmsw28u_gcc_custom.dll!wxEvtHandler::ProcessEventIfMatches
0302443A 0028D044 06331094 030243E3 wxmsw28u_gcc_custom.dll!wxEventHashTable::HandleEvent
03024895 0028D044 06332D1C 030243E3 wxmsw28u_gcc_custom.dll!wxEvtHandler::ProcessEvent
--- repeats 16 times ---
03024829 0028D044 0028C828 030243E3 wxmsw28u_gcc_custom.dll!wxEvtHandler::ProcessEvent
0A751716 0028D044 06585ED0 0028C954 clanglib.dll!ProcessEvent [ClangLib/src/clangplugin.cpp @ 222]
220: bool ClangPlugin::ProcessEvent( wxEvent& event )
221: {
> 222: if (cbPlugin::ProcessEvent(event))
223: return true;
224: for (std::vector<ClangPluginComponent*>::iterator it = m_ActiveComponentList.begin(); it != m_ActiveComponentList.end(); ++it)
03024829 0028D044 0641E648 525A6C97 wxmsw28u_gcc_custom.dll!wxEvtHandler::ProcessEvent
--- repeats 54 times ---
03024829 0028D044 00000000 FEEDBAB1 wxmsw28u_gcc_custom.dll!wxEvtHandler::ProcessEvent
031338F2 0028D044 05DFD9A8 0323C913 wxmsw28u_gcc_custom.dll!wxWindowBase::TryParent
03024829 0028D044 000000B3 033B31D5 wxmsw28u_gcc_custom.dll!wxEvtHandler::ProcessEvent
03247331 0000002B 0028D0C4 0028D0C8 wxmsw28u_gcc_custom.dll!wxAuiNotebook::SetSelection
03247B2A 0000001E 0028D168 033B9FCC wxmsw28u_gcc_custom.dll!wxAuiNotebook::RemovePage
03247BC3 0000001E 2D3508C8 0028D1E0 wxmsw28u_gcc_custom.dll!wxAuiNotebook::DeletePage
617C7E84 0000001E 00000003 2CC706A4 codeblocks.dll!cbAuiNotebook::DeletePage
618531BA 2D3508C8 00000001 0028D1C4 codeblocks.dll!EditorManager::Close
61853140 0028D22C 00000001 0028D224 codeblocks.dll!EditorManager::Close
617F27E4 00000001 00000000 00000000 codeblocks.dll!cbProject::CloseAllFiles
618C1F53 2AA20288 00000000 00000001 codeblocks.dll!ProjectManager::CloseProject
0049091E 0028DF84 0000000D 0000001A codeblocks.exe!ProjectManagerUI::OnCloseProject
02FA1261 05ECBAE8 004906FC 00000000 wxmsw28u_gcc_custom.dll!wxAppConsole::HandleEvent
0302436E 00590460 05ECBAE8 0028DF84 wxmsw28u_gcc_custom.dll!wxEvtHandler::ProcessEventIfMatches
0302443A 0028DF84 05ECBAE8 0028D4E4 wxmsw28u_gcc_custom.dll!wxEventHashTable::HandleEvent
03024895 0028DF84 05E18F48 0028D504 wxmsw28u_gcc_custom.dll!wxEvtHandler::ProcessEvent
--- repeats 16 times ---
03024829 0028DF84 00000000 0028D724 wxmsw28u_gcc_custom.dll!wxEvtHandler::ProcessEvent
0A751716 0028DF84 06585ED0 00000040 clanglib.dll!ProcessEvent [ClangLib/src/clangplugin.cpp @ 222]
220: bool ClangPlugin::ProcessEvent( wxEvent& event )
221: {
> 222: if (cbPlugin::ProcessEvent(event))
223: return true;
224: for (std::vector<ClangPluginComponent*>::iterator it = m_ActiveComponentList.begin(); it != m_ActiveComponentList.end(); ++it)
03024829 0028DF84 0641E648 0028D784 wxmsw28u_gcc_custom.dll!wxEvtHandler::ProcessEvent
--- repeats 53 times ---
03024829 0028DF84 00000000 FEEDBAB1 wxmsw28u_gcc_custom.dll!wxEvtHandler::ProcessEvent
031338F2 0028DF84 062EDBD8 FEEDBAB1 wxmsw28u_gcc_custom.dll!wxWindowBase::TryParent
03024829 0028DF84 04102D6C 2F7B7CB0 wxmsw28u_gcc_custom.dll!wxEvtHandler::ProcessEvent
031338F2 0028DF84 00000366 00000084 wxmsw28u_gcc_custom.dll!wxWindowBase::TryParent
0310DA81 00000366 00000000 00000000 wxmsw28u_gcc_custom.dll!wxMenuBase::SendEvent
0309A32B 00000000 00000366 00000000 wxmsw28u_gcc_custom.dll!wxMenu::MSWCommand
0306DAB0 00000366 00000000 00000000 wxmsw28u_gcc_custom.dll!wxWindow::HandleCommand
0307134C 00000111 00000366 00000000 wxmsw28u_gcc_custom.dll!wxWindow::MSWWindowProc
030BF047 00000111 00000366 00000000 wxmsw28u_gcc_custom.dll!wxTreeCtrl::MSWWindowProc
0306ADAE 00040AA8 00000111 00000366 wxmsw28u_gcc_custom.dll!wxWndProc
770E62FA 0306AD60 00040AA8 00000111 USER32.dll!_InternalCallWinProc@20
770E6D3A 00000000 0306AD60 00040AA8 USER32.dll!_UserCallWinProcCheckWow@32
770E77C4 0306AD60 00000000 0028E588 USER32.dll!_DispatchMessageWorker@8
770E788A 0028E554 00000000 00000111 USER32.dll!_DispatchMessageW@4
0306FBB9 0028E664 0000007E 00000066 wxmsw28u_gcc_custom.dll!wxWindow::DoPopupMenu
004F7C06 0028E664 0028E8B8 0028E800 codeblocks.exe!wxWindowBase::PopupMenu
0048AC05 2E0A2378 0028E8B8 00770020 codeblocks.exe!ProjectManagerUI::ShowMenu
0048DB76 0028F468 00000000 00000000 codeblocks.exe!ProjectManagerUI::OnTreeItemRightClick
02FA1261 05ECBAE8 0048DAD2 00000000 wxmsw28u_gcc_custom.dll!wxAppConsole::HandleEvent
0302436E 00590178 05ECBAE8 0028F468 wxmsw28u_gcc_custom.dll!wxEvtHandler::ProcessEventIfMatches
0302443A 0028F468 05ECBAE8 00000000 wxmsw28u_gcc_custom.dll!wxEventHashTable::HandleEvent
03024895 0028F468 05E18F48 00000000 wxmsw28u_gcc_custom.dll!wxEvtHandler::ProcessEvent
--- repeats 16 times ---
03024829 0028F468 00000000 00000000 wxmsw28u_gcc_custom.dll!wxEvtHandler::ProcessEvent
0A751716 0028F468 06585ED0 2FD76F80 clanglib.dll!ProcessEvent [ClangLib/src/clangplugin.cpp @ 222]
220: bool ClangPlugin::ProcessEvent( wxEvent& event )
221: {
> 222: if (cbPlugin::ProcessEvent(event))
223: return true;
224: for (std::vector<ClangPluginComponent*>::iterator it = m_ActiveComponentList.begin(); it != m_ActiveComponentList.end(); ++it)
03024829 0028F468 0641E648 6DBFBC4E wxmsw28u_gcc_custom.dll!wxEvtHandler::ProcessEvent
---- repeats 54 times -----
03024829 0028F468 00000000 FEEDBAB1 wxmsw28u_gcc_custom.dll!wxEvtHandler::ProcessEvent
031338F2 0028F468 062EDBD8 0028F3B8 wxmsw28u_gcc_custom.dll!wxWindowBase::TryParent
03024829 0028F468 770E965E 00000014 wxmsw28u_gcc_custom.dll!wxEvtHandler::ProcessEvent
031338F2 0028F468 00001111 00000000 wxmsw28u_gcc_custom.dll!wxWindowBase::TryParent
030BDF15 00000361 0028F968 0028F618 wxmsw28u_gcc_custom.dll!wxTreeCtrl::MSWOnNotify
0307240C 0000004E 00000361 0028F968 wxmsw28u_gcc_custom.dll!wxWindow::MSWWindowProc
0306ADAE 00090BAE 0000004E 00000361 wxmsw28u_gcc_custom.dll!wxWndProc
770E62FA 0306AD60 00090BAE 0000004E USER32.dll!_InternalCallWinProc@20
770E6D3A 00000000 0306AD60 00090BAE USER32.dll!_UserCallWinProcCheckWow@32
770E965E 04512E20 00000000 0306AD60 USER32.dll!_SendMessageWorker@24
770E96C5 00090BAE 0000004E 00000361 USER32.dll!_SendMessageW@16
030BFBE4 00000204 00000002 0066007E wxmsw28u_gcc_custom.dll!wxTreeCtrl::MSWWindowProc
0306ADAE 00040AA8 00000204 00000002 wxmsw28u_gcc_custom.dll!wxWndProc
770E62FA 0306AD60 00040AA8 00000204 USER32.dll!_InternalCallWinProc@20
770E6D3A 00000000 0306AD60 00040AA8 USER32.dll!_UserCallWinProcCheckWow@32
770E77C4 0306AD60 00000000 0028FBE8 USER32.dll!_DispatchMessageWorker@8
770E788A 0028FBC4 00000000 00000000 USER32.dll!_DispatchMessageW@4
0304FAEF 2A7D0B58 00000001 0028FD40 wxmsw28u_gcc_custom.dll!wxEventLoop::Dispatch
--- End code ---
you will note that this is a stack overflow crash. And the stack is nearly 210 calls in the clang library. Actually it is in the event handling code of wx 210 calls. So i think there is somewhere a recursive event loop. So this is a clang problem.
I am not this familiar with the event system so i didn't looked over it to much...
This is underlined by this messages from the bt I think this is a clang problem because of this returning bt information:
--- Code: ---0A751716 0028F468 06585ED0 2FD76F80 clanglib.dll!ProcessEvent [ClangLib/src/clangplugin.cpp @ 222]
220: bool ClangPlugin::ProcessEvent( wxEvent& event )
221: {
> 222: if (cbPlugin::ProcessEvent(event))
223: return true;
224: for (std::vector<ClangPluginComponent*>::iterator it = m_ActiveComponentList.begin(); it != m_ActiveComponentList.end(); ++it)
--- End code ---
[Edit:] correcting the hypothesis
BlueHazzard:
A other problem i noted quite frequently is if you open a new cpp file, enter code at the end of the file (no line text after the last line code) and this code has errors, so they get reported by the instant error reporting wxScilite will report some error about writing past the buffer, or writing non printable characters or something like this. I am actively investigating in this if i find some time.
This is no crash, but a assert()
I don't recall how i can reproduce this, but i will report as soon i am able to reproduce it...
yvesdm3000:
--- Quote from: ollydbg on March 07, 2017, 02:52:50 pm ---
--- Quote from: yvesdm3000 on March 07, 2017, 02:15:09 pm --- It's probably better if I switch to std::string for anything that crosses these threads and force c++11 to assure thread-safety. I'll make a POC and see if that improves reliability.
--- End quote ---
wxString in wxWidgets 2.8.12 is not thread safe, and it should be thread safe in wxWidgets 3.0+, because it use std::string, and std::string is atomic reference counted. There is same issue in the native CC, and it's hard to solve unless we move to wx3.0+.
What does POC mean? Prove of Concept?
--- End quote ---
Yes, Prove of Concept, I adapt some operations that are used in the project load&unload scenario that I was using and see if this specific problem is fixed.
Yves
yvesdm3000:
--- Quote from: BlueHazzard on March 07, 2017, 03:30:07 pm ---A other problem i noted quite frequently is if you open a new cpp file, enter code at the end of the file (no line text after the last line code) and this code has errors, so they get reported by the instant error reporting wxScilite will report some error about writing past the buffer, or writing non printable characters or something like this. I am actively investigating in this if i find some time.
This is no crash, but a assert()
I don't recall how i can reproduce this, but i will report as soon i am able to reproduce it...
--- End quote ---
Sounds familiar, I fixed something similar in the past, but it was only reproducible on Windows. Sadly I don't test it often on Windows. It's hard enough as it is to test on wx28, wx30, ubuntu, centos, ...
Yves
yvesdm3000:
--- Quote from: BlueHazzard on March 07, 2017, 03:23:00 pm ---regarding this crash:
--- Quote ---Quote from: MortenMacFly on 27-02-2017, 07:06:00
Quote from: BlueHazzard on 27-02-2017, 01:17:55
> 55: if (FileTypeOf(f->relativeFilename) == ftHeader &&
I would also verify "f"not being NULL:
if (f && FileTypeOf(f->relativeFilename) == ftHeader &&
...especially on shut-down.
Sorry this is in compiler.dll and not in the clanglib plugin.
--- End quote ---
with the bt:
--- Code: ---AddrPC Params
02FEABF6 0000002E FFFFFFFF 0028BAD4 wxmsw28u_gcc_custom.dll!wxStringBase::rfind
02FED382 0000002E 00000001 0028BB64 wxmsw28u_gcc_custom.dll!wxString::Find
02FED3DB 2F772C98 0000002E 0028E488 wxmsw28u_gcc_custom.dll!wxString::AfterLast
618734B6 2F772C98 00000001 00000000 codeblocks.dll!FileTypeOf
0BA78572 2D171550 0E8AA3B0 2B0D5A50 compiler.dll!SetupIncludeDirs [codeblocks_sf/src/plugins/compilergcc/compilerMINGWgenerator.cpp @ 55]
53: {
54: ProjectFile* f = *it;
> 55: if (FileTypeOf(f->relativeFilename) == ftHeader &&
56: f->compile)
57: {
6181B4CA 2AA20288 0A84315C 00000024 codeblocks.dll!CompilerCommandGenerator::Init
0BA75442 2AA20288 0028E488 00000000 compiler.dll!GetCommandGenerator [codeblocks_sf/src/plugins/compilergcc/compilerMINGW.cpp @ 51]
49: {
50: CompilerMINGWGenerator *generator = new CompilerMINGWGenerator;
> 51: generator->Init(project);
52: return generator;
53: }
0A756A6E 063E0198 2F789598 2D29D1C8 clanglib.dll!GetCompileCommand [ClangLib/src/clangplugin.cpp @ 1186]
1184: if (compileCommandStr.IsEmpty())
1185: compileCommandStr = wxT("$options $includes");
> 1186: CompilerCommandGenerator* gen = comp->GetCommandGenerator(proj);
1187: if (gen)
1188: gen->GenerateCommandLine(compileCommandStr, target, pf, filename,
0A757958 2D29D070 FFFFFFFC 0028C484 clanglib.dll!UpdateCompileCommand [ClangLib/src/clangplugin.cpp @ 1262]
1260: int ClangPlugin::UpdateCompileCommand(cbEditor* ed)
1261: {
> 1262: std::vector<wxString> compileCommand = GetCompileCommand( ed->GetProjectFile(), ed->GetFilename() );
1263:
1264: if (compileCommand.empty())
0A753B54 0028C518 0028C484 0028C3D4 clanglib.dll!OnEditorActivate [ClangLib/src/clangplugin.cpp @ 656]
654: if(m_TranslUnitId == wxNOT_FOUND)
655: m_TranslUnitId = GetTranslationUnitId(filename);
> 656: UpdateCompileCommand(ed);
657: if (m_TranslUnitId == wxNOT_FOUND)
658: {
0A7B008F 0028C518 0028C418 06332D18 clanglib.dll!Call [wxWidgets-2.8.12/include/wx/buffer.h @ 127]
125: #endif // wxABI_VERSION >= 20804
126:
> 127: DEFINE_BUFFER(wxCharBuffer, char, wxStrdupA);
128: #if wxABI_VERSION >= 20804
129: DEFINE_WRITABLE_BUFFER(wxWritableCharBuffer, wxCharBuffer, char);
6188D58E 0028C518 FFFFFFFC 0028C454 codeblocks.dll!Manager::ProcessEvent
618A321B 0028C518 FFFFFFFF 00000000 codeblocks.dll!PluginManager::NotifyPlugins
61856F4D 0028D044 2D3508C8 0028C5D4 codeblocks.dll!EditorManager::OnPageChanged
02FA1261 06331094 61856DBA FFFFFFFC wxmsw28u_gcc_custom.dll!wxAppConsole::HandleEvent
0302436E 61C32430 06331094 0028D044 wxmsw28u_gcc_custom.dll!wxEvtHandler::ProcessEventIfMatches
0302443A 0028D044 06331094 030243E3 wxmsw28u_gcc_custom.dll!wxEventHashTable::HandleEvent
03024895 0028D044 06332D1C 030243E3 wxmsw28u_gcc_custom.dll!wxEvtHandler::ProcessEvent
--- repeats 16 times ---
03024829 0028D044 0028C828 030243E3 wxmsw28u_gcc_custom.dll!wxEvtHandler::ProcessEvent
0A751716 0028D044 06585ED0 0028C954 clanglib.dll!ProcessEvent [ClangLib/src/clangplugin.cpp @ 222]
220: bool ClangPlugin::ProcessEvent( wxEvent& event )
221: {
> 222: if (cbPlugin::ProcessEvent(event))
223: return true;
224: for (std::vector<ClangPluginComponent*>::iterator it = m_ActiveComponentList.begin(); it != m_ActiveComponentList.end(); ++it)
03024829 0028D044 0641E648 525A6C97 wxmsw28u_gcc_custom.dll!wxEvtHandler::ProcessEvent
--- repeats 54 times ---
03024829 0028D044 00000000 FEEDBAB1 wxmsw28u_gcc_custom.dll!wxEvtHandler::ProcessEvent
031338F2 0028D044 05DFD9A8 0323C913 wxmsw28u_gcc_custom.dll!wxWindowBase::TryParent
03024829 0028D044 000000B3 033B31D5 wxmsw28u_gcc_custom.dll!wxEvtHandler::ProcessEvent
03247331 0000002B 0028D0C4 0028D0C8 wxmsw28u_gcc_custom.dll!wxAuiNotebook::SetSelection
03247B2A 0000001E 0028D168 033B9FCC wxmsw28u_gcc_custom.dll!wxAuiNotebook::RemovePage
03247BC3 0000001E 2D3508C8 0028D1E0 wxmsw28u_gcc_custom.dll!wxAuiNotebook::DeletePage
617C7E84 0000001E 00000003 2CC706A4 codeblocks.dll!cbAuiNotebook::DeletePage
618531BA 2D3508C8 00000001 0028D1C4 codeblocks.dll!EditorManager::Close
61853140 0028D22C 00000001 0028D224 codeblocks.dll!EditorManager::Close
617F27E4 00000001 00000000 00000000 codeblocks.dll!cbProject::CloseAllFiles
618C1F53 2AA20288 00000000 00000001 codeblocks.dll!ProjectManager::CloseProject
0049091E 0028DF84 0000000D 0000001A codeblocks.exe!ProjectManagerUI::OnCloseProject
02FA1261 05ECBAE8 004906FC 00000000 wxmsw28u_gcc_custom.dll!wxAppConsole::HandleEvent
0302436E 00590460 05ECBAE8 0028DF84 wxmsw28u_gcc_custom.dll!wxEvtHandler::ProcessEventIfMatches
0302443A 0028DF84 05ECBAE8 0028D4E4 wxmsw28u_gcc_custom.dll!wxEventHashTable::HandleEvent
03024895 0028DF84 05E18F48 0028D504 wxmsw28u_gcc_custom.dll!wxEvtHandler::ProcessEvent
--- repeats 16 times ---
03024829 0028DF84 00000000 0028D724 wxmsw28u_gcc_custom.dll!wxEvtHandler::ProcessEvent
0A751716 0028DF84 06585ED0 00000040 clanglib.dll!ProcessEvent [ClangLib/src/clangplugin.cpp @ 222]
220: bool ClangPlugin::ProcessEvent( wxEvent& event )
221: {
> 222: if (cbPlugin::ProcessEvent(event))
223: return true;
224: for (std::vector<ClangPluginComponent*>::iterator it = m_ActiveComponentList.begin(); it != m_ActiveComponentList.end(); ++it)
03024829 0028DF84 0641E648 0028D784 wxmsw28u_gcc_custom.dll!wxEvtHandler::ProcessEvent
--- repeats 53 times ---
03024829 0028DF84 00000000 FEEDBAB1 wxmsw28u_gcc_custom.dll!wxEvtHandler::ProcessEvent
031338F2 0028DF84 062EDBD8 FEEDBAB1 wxmsw28u_gcc_custom.dll!wxWindowBase::TryParent
03024829 0028DF84 04102D6C 2F7B7CB0 wxmsw28u_gcc_custom.dll!wxEvtHandler::ProcessEvent
031338F2 0028DF84 00000366 00000084 wxmsw28u_gcc_custom.dll!wxWindowBase::TryParent
0310DA81 00000366 00000000 00000000 wxmsw28u_gcc_custom.dll!wxMenuBase::SendEvent
0309A32B 00000000 00000366 00000000 wxmsw28u_gcc_custom.dll!wxMenu::MSWCommand
0306DAB0 00000366 00000000 00000000 wxmsw28u_gcc_custom.dll!wxWindow::HandleCommand
0307134C 00000111 00000366 00000000 wxmsw28u_gcc_custom.dll!wxWindow::MSWWindowProc
030BF047 00000111 00000366 00000000 wxmsw28u_gcc_custom.dll!wxTreeCtrl::MSWWindowProc
0306ADAE 00040AA8 00000111 00000366 wxmsw28u_gcc_custom.dll!wxWndProc
770E62FA 0306AD60 00040AA8 00000111 USER32.dll!_InternalCallWinProc@20
770E6D3A 00000000 0306AD60 00040AA8 USER32.dll!_UserCallWinProcCheckWow@32
770E77C4 0306AD60 00000000 0028E588 USER32.dll!_DispatchMessageWorker@8
770E788A 0028E554 00000000 00000111 USER32.dll!_DispatchMessageW@4
0306FBB9 0028E664 0000007E 00000066 wxmsw28u_gcc_custom.dll!wxWindow::DoPopupMenu
004F7C06 0028E664 0028E8B8 0028E800 codeblocks.exe!wxWindowBase::PopupMenu
0048AC05 2E0A2378 0028E8B8 00770020 codeblocks.exe!ProjectManagerUI::ShowMenu
0048DB76 0028F468 00000000 00000000 codeblocks.exe!ProjectManagerUI::OnTreeItemRightClick
02FA1261 05ECBAE8 0048DAD2 00000000 wxmsw28u_gcc_custom.dll!wxAppConsole::HandleEvent
0302436E 00590178 05ECBAE8 0028F468 wxmsw28u_gcc_custom.dll!wxEvtHandler::ProcessEventIfMatches
0302443A 0028F468 05ECBAE8 00000000 wxmsw28u_gcc_custom.dll!wxEventHashTable::HandleEvent
03024895 0028F468 05E18F48 00000000 wxmsw28u_gcc_custom.dll!wxEvtHandler::ProcessEvent
--- repeats 16 times ---
03024829 0028F468 00000000 00000000 wxmsw28u_gcc_custom.dll!wxEvtHandler::ProcessEvent
0A751716 0028F468 06585ED0 2FD76F80 clanglib.dll!ProcessEvent [ClangLib/src/clangplugin.cpp @ 222]
220: bool ClangPlugin::ProcessEvent( wxEvent& event )
221: {
> 222: if (cbPlugin::ProcessEvent(event))
223: return true;
224: for (std::vector<ClangPluginComponent*>::iterator it = m_ActiveComponentList.begin(); it != m_ActiveComponentList.end(); ++it)
03024829 0028F468 0641E648 6DBFBC4E wxmsw28u_gcc_custom.dll!wxEvtHandler::ProcessEvent
---- repeats 54 times -----
03024829 0028F468 00000000 FEEDBAB1 wxmsw28u_gcc_custom.dll!wxEvtHandler::ProcessEvent
031338F2 0028F468 062EDBD8 0028F3B8 wxmsw28u_gcc_custom.dll!wxWindowBase::TryParent
03024829 0028F468 770E965E 00000014 wxmsw28u_gcc_custom.dll!wxEvtHandler::ProcessEvent
031338F2 0028F468 00001111 00000000 wxmsw28u_gcc_custom.dll!wxWindowBase::TryParent
030BDF15 00000361 0028F968 0028F618 wxmsw28u_gcc_custom.dll!wxTreeCtrl::MSWOnNotify
0307240C 0000004E 00000361 0028F968 wxmsw28u_gcc_custom.dll!wxWindow::MSWWindowProc
0306ADAE 00090BAE 0000004E 00000361 wxmsw28u_gcc_custom.dll!wxWndProc
770E62FA 0306AD60 00090BAE 0000004E USER32.dll!_InternalCallWinProc@20
770E6D3A 00000000 0306AD60 00090BAE USER32.dll!_UserCallWinProcCheckWow@32
770E965E 04512E20 00000000 0306AD60 USER32.dll!_SendMessageWorker@24
770E96C5 00090BAE 0000004E 00000361 USER32.dll!_SendMessageW@16
030BFBE4 00000204 00000002 0066007E wxmsw28u_gcc_custom.dll!wxTreeCtrl::MSWWindowProc
0306ADAE 00040AA8 00000204 00000002 wxmsw28u_gcc_custom.dll!wxWndProc
770E62FA 0306AD60 00040AA8 00000204 USER32.dll!_InternalCallWinProc@20
770E6D3A 00000000 0306AD60 00040AA8 USER32.dll!_UserCallWinProcCheckWow@32
770E77C4 0306AD60 00000000 0028FBE8 USER32.dll!_DispatchMessageWorker@8
770E788A 0028FBC4 00000000 00000000 USER32.dll!_DispatchMessageW@4
0304FAEF 2A7D0B58 00000001 0028FD40 wxmsw28u_gcc_custom.dll!wxEventLoop::Dispatch
--- End code ---
you will note that this is a stack overflow crash. And the stack is nearly 210 calls in the clang library. Actually it is in the event handling code of wx 210 calls. So i think there is somewhere a recursive event loop. So this is a clang problem.
I am not this familiar with the event system so i didn't looked over it to much...
This is underlined by this messages from the bt I think this is a clang problem because of this returning bt information:
--- Code: ---0A751716 0028F468 06585ED0 2FD76F80 clanglib.dll!ProcessEvent [ClangLib/src/clangplugin.cpp @ 222]
220: bool ClangPlugin::ProcessEvent( wxEvent& event )
221: {
> 222: if (cbPlugin::ProcessEvent(event))
223: return true;
224: for (std::vector<ClangPluginComponent*>::iterator it = m_ActiveComponentList.begin(); it != m_ActiveComponentList.end(); ++it)
--- End code ---
[Edit:] correcting the hypothesis
--- End quote ---
No it is not a recursing problem. On some operations wx is processing events for a short while, thats why you see them stacking up.
Yves
Navigation
[0] Message Index
[#] Next page
[*] Previous page
Go to full version