Author Topic: Nightly build vs Release crash  (Read 5439 times)

Offline Manolo

  • Multiple posting newcomer
  • *
  • Posts: 47
Nightly build vs Release crash
« on: July 31, 2014, 10:53:15 pm »
Hello
Since I changed to Win8 C::B crashes with the mouse wheel.
I reported it to the bug tracker (bug #19122 september 2013).

I decided to try to debug C::B myself. So I downloaded 13.12 version from http://www.codeblocks.org/downloads/25 and with the guide of http://wiki.codeblocks.org/index.php?title=Installing_Code::Blocks_from_source_on_Windows downloaded also wxMSW-2.8.12.zip.
I didn't try with the current SVN version, because the crash happened using a nightly previous to 13.12 and also with the last nightly build (svn 9844), so I believe the error would also raise with the intermediate 13.12.

I tried to compile wx with the official Mingw 4.8.1 (mingw.org), but there was a problem (I don't remember exactly, it's related to Unicode, and Vadim fixed it, but not for wx2.8.12). Then, I tried with TDM 64 bits and its "-m32" flags. I had to make some changes to wx makefile.gcc (windres calls) and it succeeded. But I was not able to compile C::B. Finally, I used TMD-GCC-32 4.8.1 (october 2013) for wx and C::B (using the provided .cbp file) and everything went well. I used the "-g" flag for 'cb_release_type' global var. Copied the wx dll, runned update.bat.

The problem does not show with none of my 13.12 versions (src/devel and src/output).
So I reach to the conclusion that there are differences between my compilation and the nightlies.

My tests:
Open a project.
Use the mouse wheel in the code-window.
If I use the mouse wheel in the blank part of the window (at the right of my code) no crash happens.
If I use the wheel over the code, eventually a crash happens.

¿May this bug be related to tip-windows?

THX

Offline Manolo

  • Multiple posting newcomer
  • *
  • Posts: 47
Re: Nightly build vs Release crash
« Reply #1 on: August 14, 2014, 02:12:07 am »
OK
I managed to narrow the problem. It's a SpellChecker bug, when its "Enable tooltips" option is activated.
Sorry, now I see this post belongs to "Plugins development" forum. In order to keep this thread, I reply here.

I compiled the plugin and I ran C::B under gdb. Here are some data, right after the crash:

Code
Program received signal SIGSEGV, Segmentation fault.
0x76f1b4c1 in strcmp () from C:\Windows\SysWOW64\msvcrt.dll
(gdb) bt
#0  0x76f1b4c1 in strcmp () from C:\Windows\SysWOW64\msvcrt.dll
#1  0x06b985b0 in MyThes::binsearch (this=0x8bdbd40, sw=0xe1aa078 "\"This",
    list=0x8bdc210, nlst=0)
    at F:\codeblocks-13.12\src\plugins\contrib\SpellChecker\mythes.cxx:375
#2  0x06b97fbd in MyThes::Lookup (this=0x8bdbd40, pText=0xe1a50f8 "\"This",
    len=5, pme=0x28f088)
    at F:\codeblocks-13.12\src\plugins\contrib\SpellChecker\mythes.cxx:216
#3  0x06badb49 in wxThes::Lookup (this=0x89cd528, Text=...)
    at F:\codeblocks-13.12\src\plugins\contrib\SpellChecker\wxThes.cpp:40
#4  0x06babbb6 in Thesaurus::GetSynonyms (this=0x8bdb488, Word=...)
    at F:\codeblocks-13.12\src\plugins\contrib\SpellChecker\Thesaurus.cpp:130
#5  0x06ba5386 in SpellCheckerPlugin::OnEditorTooltip (this=0x383a030, event=
    ...)
    at F:\codeblocks-13.12\src\plugins\contrib\SpellChecker\SpellCheckerPlugin.c
pp:812
#6  0x06c02073 in cbEventFunctor<SpellCheckerPlugin, CodeBlocksEvent>::Call (
    this=0x8bd5a50, event=...) at ../../../include/cbfunctor.h:49
#7  0x618860ee in Manager::ProcessEvent (this=0x2efaee8, event=...)
    at F:\codeblocks-13.12\src\sdk\manager.cpp:259
#8  0x6189ca4b in PluginManager::NotifyPlugins (this=0x37a4130, event=...)
    at F:\codeblocks-13.12\src\sdk\pluginmanager.cpp:1445
#9  0x617cb139 in cbEditor::NotifyPlugins (this=0x8f27ab0, type=10357,
    intArg=6, strArg=..., xArg=254, yArg=256)
    at F:\codeblocks-13.12\src\sdk\cbeditor.cpp:811
#10 0x617df8e3 in cbEditor::OnEditorDwellStart (this=0x8f27ab0, event=...)
    at F:\codeblocks-13.12\src\sdk\cbeditor.cpp:3209
#11 0x01281261 in wxAppConsole::HandleEvent(wxEvtHandler*, void (wxEvtHandler::*
)(wxEvent&), wxEvent&) const ()
   from F:\codeblocks-13.12\src\devel\wxmsw28u_gcc_custom.dll
#12 0x0130436e in wxEvtHandler::ProcessEventIfMatches(wxEventTableEntryBase cons
t&, wxEvtHandler*, wxEvent&) ()
   from F:\codeblocks-13.12\src\devel\wxmsw28u_gcc_custom.dll
#13 0x013047a7 in wxEvtHandler::SearchDynamicEventTable(wxEvent&) ()
   from F:\codeblocks-13.12\src\devel\wxmsw28u_gcc_custom.dll
#14 0x01304864 in wxEvtHandler::ProcessEvent(wxEvent&) ()
   from F:\codeblocks-13.12\src\devel\wxmsw28u_gcc_custom.dll
#15 0x014138f2 in wxWindowBase::TryParent(wxEvent&) ()
   from F:\codeblocks-13.12\src\devel\wxmsw28u_gcc_custom.dll
#16 0x6190ddf0 in wxScintilla::NotifyParent (this=0x8f8d7f8, _scn=0x28f808)
    at F:\codeblocks-13.12\src\sdk\wxscintilla\src\wxscintilla.cpp:5623
#17 0x61910df1 in ScintillaWX::NotifyParent (this=0x8f0ff30, scn=...)
    at F:\codeblocks-13.12\src\sdk\wxscintilla\src\ScintillaWX.cpp:536
#18 0x619bab44 in Editor::NotifyDwelling (this=0x8f0ff30, pt=..., state=true)
    at F:\codeblocks-13.12\src\sdk\wxscintilla\src\scintilla\src\Editor.cxx:4589

#19 0x619c82c1 in Editor::Tick (this=0x8f0ff30)
    at F:\codeblocks-13.12\src\sdk\wxscintilla\src\scintilla\src\Editor.cxx:6731

#20 0x61a617cb in ScintillaWX::DoTick (this=0x8f0ff30)
    at F:/codeblocks-13.12/src/sdk/wxscintilla/src/ScintillaWX.h:185
#21 0x61a5e09e in wxSCITimer::Notify (this=0x8f6ca98)
    at F:\codeblocks-13.12\src\sdk\wxscintilla\src\ScintillaWX.cpp:67
#22 0x01341cb4 in wxTimerWndProc ()
   from F:\codeblocks-13.12\src\devel\wxmsw28u_gcc_custom.dll
#23 0x74df7834 in USER32!CallNextHookEx () from C:\Windows\SysWOW64\user32.dll
#24 0x74df7a9a in USER32!CallNextHookEx () from C:\Windows\SysWOW64\user32.dll
#25 0x74df988e in USER32!GetMessageW () from C:\Windows\SysWOW64\user32.dll
#26 0x74e12626 in USER32!IsDialogMessageW ()
   from C:\Windows\SysWOW64\user32.dll
#27 0x0132fd80 in wxEventLoop::PreProcessMessage(tagMSG*) ()
   from F:\codeblocks-13.12\src\devel\wxmsw28u_gcc_custom.dll
#28 0x0132f852 in wxEventLoop::ProcessMessage(tagMSG*) ()
   from F:\codeblocks-13.12\src\devel\wxmsw28u_gcc_custom.dll
#29 0x0132faef in wxEventLoop::Dispatch() ()
   from F:\codeblocks-13.12\src\devel\wxmsw28u_gcc_custom.dll
#30 0x013c3873 in wxEventLoopManual::Run() ()
   from F:\codeblocks-13.12\src\devel\wxmsw28u_gcc_custom.dll
(gdb)

Notice at #1 that nlst==0 (I suppose: number of items in list) which is the inmediate reason for crash.