Author Topic: code::blocks hangs at startup  (Read 52930 times)

Offline Miguel Gimenez

  • Developer
  • Lives here!
  • *****
  • Posts: 1813
Re: code::blocks hangs at startup
« Reply #30 on: January 23, 2026, 10:06:29 am »
Thanks for testing. If this works then I will leave wxsresourcetree as is, because the change would be complex.

Probably works because wxsresourcetree uses cbLoadBitmap(), which calls wxImage::LoadFile() instead of wxBitmap::LoadFile().

Offline killerbot

  • Administrator
  • Lives here!
  • *****
  • Posts: 5545
Re: code::blocks hangs at startup
« Reply #31 on: January 23, 2026, 05:49:17 pm »
@ChrisK , @blauzahn, @Lufex, @cet_ivan, @JorgenBest : would you be able to verify, if with the latest state of the code the problem is also gone on your side ?
« Last Edit: January 23, 2026, 05:52:06 pm by killerbot »

Offline JorgenBest

  • Single posting newcomer
  • *
  • Posts: 4
Re: code::blocks hangs at startup
« Reply #32 on: Today at 10:20:07 am »
The 25-03-2 version that I have still has this problem, but that's the regular version and not a nightly build or so.

I have difficulties installing all kinds of sources. I think I need something that is not yet out and I'm not to trusted with finding the right sources, dependencies and compilation myself. I use Arch Linux as rolling release platform (version 25-03-2), but there are no updates that yet worked to solve this problem. Also on aur nothing is yet more recent available.

So you help me I gladly test something if I can install and reverse it easily on my system.

Offline blauzahn

  • Almost regular
  • **
  • Posts: 222
Re: code::blocks hangs at startup
« Reply #33 on: Today at 11:02:50 am »
cb still hangs at startup on arch Linux, cb-trunk build with the distributed wx-3.2.9. In my Makefile, wxSmith plugins are disabled at configure:

Code
  (cd $(build) && \
  LT_SYS_LIBRARY_PATH=$(WX_PREFIX)/lib \
  CC=${CC} CXX=${CXX} ../$(trunk)/configure \
  --enable-debug=yes \
  --enable-pch=no \
  --prefix=$(PREFIX) \
  --with-wx-config=$(WX_PREFIX)/bin/wx-config --with-wx-prefix=$(WX_PREFIX) \
  --with-contrib-plugins=all,\
         -wxsmith,-wxsmithaui,-wxsmithcontrib,\
         -NassiShneiderman,-codesnippets,-dragscroll)

Console output at startup is:

Code
$ codeblocks
Starting Code::Blocks svn build  rev 13776 Jan 25 2026, 09:09:29 - wxWidgets 3.2.9 - gcc 15.2.1 (Linux, unicode) - 64 bit
Manager initialisiert
Initialize EditColourSet .....
Initialize EditColourSet: done.
Loading menubar...
/usr/src/debug/wxwidgets/wxWidgets/src/common/object.cpp(233):
assert "classTable->Get(m_className) == __null" failed in Register(): Class "wxAnyValueTypeGlobalsManager"
already in RTTI table - have you used wxIMPLEMENT_DYNAMIC_CLASS() multiple times or linked some object file twice)?


Please note the assert. I have seen this a few times over the years. I use an out of tree build. The installation directories of cb are pristine and without stale files. I verified this, recompiled, reinstalled but the assert remains.

Run in gdb, similar lines replaced with [...]:

Code
$ gdb /usr/local/bin/codeblocks
GNU gdb (GDB) 17.1
[...]
Reading symbols from /usr/local/bin/codeblocks...
(gdb) r
Starting program: /usr/local/bin/codeblocks
[...]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/libthread_db.so.1".
[New Thread 0x7fffefdff6c0 (LWP 143300)]
[...]
[New Thread 0x7fffed5fa6c0 (LWP 143305)]
Starting Code::Blocks svn build  rev 13776 Jan 25 2026, 09:09:29 - wxWidgets 3.2.9 - gcc 15.2.1 (Linux, unicode) - 64 bit
Manager initialisiert
Initialize EditColourSet .....
[New Thread 0x7fffd7fff6c0 (LWP 143705)]
[New Thread 0x7fffd77fe6c0 (LWP 143706)]
[New Thread 0x7fffd6ffd6c0 (LWP 143707)]
Initialize EditColourSet: done.
Loading menubar...
[New Thread 0x7fffd67fc6c0 (LWP 143906)]
[...]
[New Thread 0x7fffd4ff96c0 (LWP 143912)]
[Detaching after fork from child process 143913]
[New Thread 0x7fffd4df86c0 (LWP 143916)]
[Detaching after fork from child process 143917]
/usr/src/debug/wxwidgets/wxWidgets/src/common/object.cpp(233): assert "classTable->Get(m_className) == __null" failed in Register(): Class "wxAnyValueTypeGlobalsManager" already in RTTI table - have you used wxIMPLEMENT_DYNAMIC_CLASS() multiple times or linked some object file twice)?
[New Thread 0x7fffd43ff6c0 (LWP 143923)]
[Thread 0x7fffd4ff96c0 (LWP 143912) exited]
^C
Thread 1 "codeblocks" received signal SIGINT, Interrupt.
0x00007ffff4d1876d in syscall () from /usr/lib/libc.so.6

cb hangs here; Ctrl-C pressed yields this backtrace:

Code

(gdb) bt
#0  0x00007ffff4d1876d in syscall () from /usr/lib/libc.so.6
#1  0x00007ffff4230905 in ?? () from /usr/lib/libglycin-2.so.0
#2  0x00007ffff416532e in gly_loader_load () from /usr/lib/libglycin-2.so.0
#3  0x00007ffff647a704 in ?? () from /usr/lib/libgdk_pixbuf-2.0.so.0
#4  0x00007ffff647ac62 in ?? () from /usr/lib/libgdk_pixbuf-2.0.so.0
#5  0x00007ffff6464e32 in gdk_pixbuf_loader_close () from /usr/lib/libgdk_pixbuf-2.0.so.0
#6  0x00007ffff5f04014 in ?? () from /usr/lib/libgtk-3.so.0
[...]
#21 0x00007ffff5f009b5 in ?? () from /usr/lib/libgtk-3.so.0
#22 0x00007ffff612197c in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#23 0x00007ffff6140bf3 in ?? () from /usr/lib/libgobject-2.0.so.0
#24 0x00007ffff6142b0f in ?? () from /usr/lib/libgobject-2.0.so.0
#25 0x00007ffff6142d89 in g_signal_emit_valist () from /usr/lib/libgobject-2.0.so.0
#26 0x00007ffff6142e44 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#27 0x00007ffff5eddde2 in gtk_widget_show () from /usr/lib/libgtk-3.so.0
#28 0x00007ffff5cc4089 in gtk_dialog_run () from /usr/lib/libgtk-3.so.0
#29 0x00007ffff6b40935 in wxGUIAppTraits::ShowAssertDialog(wxString const&) () from /usr/lib/libwx_gtk3u_core-3.2.so.0
#30 0x00007ffff6282382 in ?? () from /usr/lib/libwx_baseu-3.2.so.0
#31 0x00007ffff6282589 in wxAppConsoleBase::OnAssertFailure(wchar_t const*, int, wchar_t const*, wchar_t const*, wchar_t const*) ()
   from /usr/lib/libwx_baseu-3.2.so.0
#32 0x00007ffff6b0448d in wxApp::OnAssertFailure(wchar_t const*, int, wchar_t const*, wchar_t const*, wchar_t const*) ()
   from /usr/lib/libwx_gtk3u_core-3.2.so.0
#33 0x00007ffff62827a2 in ?? () from /usr/lib/libwx_baseu-3.2.so.0
#34 0x00007ffff627ca5e in wxOnAssert(char const*, int, char const*, char const*, wxString const&) () from /usr/lib/libwx_baseu-3.2.so.0
#35 0x00007ffff6300c0d in wxClassInfo::Register() () from /usr/lib/libwx_baseu-3.2.so.0
#36 0x00007fffd449bb33 in wxClassInfo::wxClassInfo (this=0x7fffd4721ec0 <wxAnyValueTypeGlobalsManager::ms_classInfo>,
    className=0x7fffd463d368 L"wxAnyValueTypeGlobalsManager", baseInfo1=0x7ffff6441860 <wxModule::ms_classInfo>, baseInfo2=0x0, size=72,
    ctor=0x7fffd449a3e2 <wxAnyValueTypeGlobalsManager::wxCreateObject()>) at ../trunk/include/wx/rtti.h:87
#37 0x00007fffd449ae7a in __static_initialization_and_destruction_0 () at ../trunk/src/common/any.cpp:226
#38 0x00007fffd449b2d8 in _GLOBAL__sub_I_any.cpp(void) () at ../trunk/src/common/any.cpp:499
#39 0x00007ffff7fc82a7 in ?? () from /lib64/ld-linux-x86-64.so.2
#40 0x00007ffff7fc837d in ?? () from /lib64/ld-linux-x86-64.so.2
#41 0x00007ffff7fc44f5 in _dl_catch_exception () from /lib64/ld-linux-x86-64.so.2
#42 0x00007ffff7fcf2a9 in ?? () from /lib64/ld-linux-x86-64.so.2
#43 0x00007ffff7fc4456 in _dl_catch_exception () from /lib64/ld-linux-x86-64.so.2
#44 0x00007ffff7fcf75a in ?? () from /lib64/ld-linux-x86-64.so.2
#45 0x00007ffff4c92cc4 in ?? () from /usr/lib/libc.so.6
#46 0x00007ffff7fc4456 in _dl_catch_exception () from /lib64/ld-linux-x86-64.so.2
#47 0x00007ffff7fc45a9 in ?? () from /lib64/ld-linux-x86-64.so.2
#48 0x00007ffff4c927b3 in ?? () from /usr/lib/libc.so.6
--Type <RET> for more, q to quit, c to continue without paging--
#49 0x00007ffff4c92d7b in dlopen () from /usr/lib/libc.so.6
#50 0x00007ffff6372388 in wxDynamicLibrary::RawLoad(wxString const&, int) () from /usr/lib/libwx_baseu-3.2.so.0
#51 0x00007ffff62a6c4c in wxDynamicLibrary::Load(wxString const&, int) () from /usr/lib/libwx_baseu-3.2.so.0
#52 0x00007ffff7a0e381 in LibLoader::LoadLibrary (filename=...) at ../../../trunk/src/sdk/pluginmanager.cpp:121
#53 0x00007ffff7a0a216 in PluginManager::LoadPlugin (this=0x55555692ece0, pluginName=...) at ../../../trunk/src/sdk/pluginmanager.cpp:1104
#54 0x00007ffff7a09c53 in PluginManager::ScanForPlugins (this=0x55555692ece0, path=...) at ../../../trunk/src/sdk/pluginmanager.cpp:1067
#55 0x00005555556d3423 in MainFrame::ScanForPlugins (this=0x5555560feed0) at ../../../trunk/src/src/main.cpp:1496
#56 0x00005555556caef3 in MainFrame::MainFrame (this=0x5555560feed0, parent=0x0) at ../../../trunk/src/src/main.cpp:794
#57 0x0000555555639fb3 in CodeBlocksApp::InitFrame (this=0x555555909dd0) at ../../../trunk/src/src/app.cpp:554
#58 0x000055555563ba4d in CodeBlocksApp::OnInit (this=0x555555909dd0) at ../../../trunk/src/src/app.cpp:785
#59 0x00005555556454e7 in wxAppConsoleBase::CallOnInit (this=0x555555909dd0) at /usr/include/wx-3.2/wx/app.h:93
#60 0x00007ffff62ec1b2 in wxEntry(int&, wchar_t**) () from /usr/lib/libwx_baseu-3.2.so.0
#61 0x00005555556397b6 in main (argc=1, argv=0x7fffffffdf88) at ../../../trunk/src/src/app.cpp:365
(gdb)

As before, libglycin-2 seems to be involved.

When I build and install curren wx trunk locally in /opt/wx trunk cb fails to compile:

Code
make[5]: Entering directory 'src/sdk/scripting/bindings'
depbase=`echo sc_wxtypes.lo | sed 's|[^/]*$|.deps/&|;s|\.lo$||'`;\
/bin/sh ../../../../libtool  --tag=CXX   --mode=compile g++ -std=c++11 -DHAVE_CONFIG_H -I. -I../../../../../trunk/src/sdk/scripting/bindings -I../../../../src/include  -I/opt/wx/lib/wx/include/gtk3-unicode-3.3 -I/opt/wx/include/wx-3.3 -D_FILE_OFFSET_BITS=64 -DWXUSINGDLL -D__WXGTK__ -pthread -I../../../../../trunk/src/include/scripting/include -I../../../../../trunk/src/include -I../../../../../trunk/src/sdk/wxscintilla/include  -DCB_AUTOCONF -DDEBUG -DcbDEBUG  -DPIC -I../../../../../trunk/src/include/tinyxml -DTIXML_USE_STL=YES  -g  -fPIC -fexceptions -MT sc_wxtypes.lo -MD -MP -MF $depbase.Tpo -c -o sc_wxtypes.lo ../../../../../trunk/src/sdk/scripting/bindings/sc_wxtypes.cpp &&\
mv -f $depbase.Tpo $depbase.Plo
libtool: compile:  g++ -std=c++11 -DHAVE_CONFIG_H -I. -I../../../../../trunk/src/sdk/scripting/bindings -I../../../../src/include -I/opt/wx/lib/wx/include/gtk3-unicode-3.3 -I/opt/wx/include/wx-3.3 -D_FILE_OFFSET_BITS=64 -DWXUSINGDLL -D__WXGTK__ -pthread -I../../../../../trunk/src/include/scripting/include -I../../../../../trunk/src/include -I../../../../../trunk/src/sdk/wxscintilla/include -DCB_AUTOCONF -DDEBUG -DcbDEBUG -DPIC -I../../../../../trunk/src/include/tinyxml -DTIXML_USE_STL=YES -g -fPIC -fexceptions -MT sc_wxtypes.lo -MD -MP -MF .deps/sc_wxtypes.Tpo -c ../../../../../trunk/src/sdk/scripting/bindings/sc_wxtypes.cpp  -fPIC -DPIC -o .libs/sc_wxtypes.o
../../../../../trunk/src/sdk/scripting/bindings/sc_wxtypes.cpp: In function 'void ScriptBindings::Register_wxTypes(HSQUIRRELVM)':
../../../../../trunk/src/sdk/scripting/bindings/sc_wxtypes.cpp:1078:19: error: no matches converting function 'NoParamGetterInt' to type 'SQFUNCTION' {aka 'long long int (*)(struct SQVM*)'}
 1078 |         BindMethod(v, _SC("Blue"), NoParamGetterInt<wxColour::ChannelType, wxColour, &wxColour::Blue>, _SC("wxColour::Blue"));
      |         ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from ../../../../../trunk/src/sdk/scripting/bindings/sc_wxtypes.cpp:17:
../../../../../trunk/src/include/scripting/bindings/sc_utils.h:992:11: note: candidate is: 'template<class ReturnType, class ClassType, ReturnType (ClassType::* func)() const> SQInteger ScriptBindings::NoParamGetterInt(HSQUIRRELVM)'
  992 | SQInteger NoParamGetterInt(HSQUIRRELVM v)
      |           ^~~~~~~~~~~~~~~~
../../../../../trunk/src/sdk/scripting/bindings/sc_wxtypes.cpp:1079:19: error: no matches converting function 'NoParamGetterInt' to type 'SQFUNCTION' {aka 'long long int (*)(struct SQVM*)'}
 1079 |         BindMethod(v, _SC("Green"), NoParamGetterInt<wxColour::ChannelType, wxColour, &wxColour::Green>, _SC("wxColour::Green"));
      |         ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../../../../trunk/src/include/scripting/bindings/sc_utils.h:992:11: note: candidate is: 'template<class ReturnType, class ClassType, ReturnType (ClassType::* func)() const> SQInteger ScriptBindings::NoParamGetterInt(HSQUIRRELVM)'
  992 | SQInteger NoParamGetterInt(HSQUIRRELVM v)
      |           ^~~~~~~~~~~~~~~~
../../../../../trunk/src/sdk/scripting/bindings/sc_wxtypes.cpp:1080:19: error: no matches converting function 'NoParamGetterInt' to type 'SQFUNCTION' {aka 'long long int (*)(struct SQVM*)'}
 1080 |         BindMethod(v, _SC("Red"), NoParamGetterInt<wxColour::ChannelType, wxColour, &wxColour::Red>, _SC("wxColour::Red"));
      |         ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../../../../trunk/src/include/scripting/bindings/sc_utils.h:992:11: note: candidate is: 'template<class ReturnType, class ClassType, ReturnType (ClassType::* func)() const> SQInteger ScriptBindings::NoParamGetterInt(HSQUIRRELVM)'
  992 | SQInteger NoParamGetterInt(HSQUIRRELVM v)
      |           ^~~~~~~~~~~~~~~~
../../../../../trunk/src/sdk/scripting/bindings/sc_wxtypes.cpp:1081:19: error: no matches converting function 'NoParamGetterInt' to type 'SQFUNCTION' {aka 'long long int (*)(struct SQVM*)'}
 1081 |         BindMethod(v, _SC("Alpha"), NoParamGetterInt<wxColour::ChannelType, wxColour, &wxColour::Alpha>, _SC("wxColour::Alpha"));
      |         ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../../../../trunk/src/include/scripting/bindings/sc_utils.h:992:11: note: candidate is: 'template<class ReturnType, class ClassType, ReturnType (ClassType::* func)() const> SQInteger ScriptBindings::NoParamGetterInt(HSQUIRRELVM)'
  992 | SQInteger NoParamGetterInt(HSQUIRRELVM v)
      |           ^~~~~~~~~~~~~~~~
make[5]: *** [Makefile:534: sc_wxtypes.lo] Error 1

I had this compile error since autum. Currently, I am able to compile and run cb with wx-trunk set back to this commit:

Code
Autor: Eran Ifrah <eran@codelite.org>  2025-10-29 19:13:14
Eintragender: Vadim Zeitlin <vadim@wxwidgets.org>  2025-11-01 16:06:17
Eltern: 4bf58e23b69480166b34d326ce06385e6c97f916 (Fix a small typo in wxStyledTextCtrlMiniMap comment)

My wxWidgets has been configured for years this way:

Code
  mkdir -p $(BUILD)
  (cd $(BUILD) && ../$(TRUNK)/configure --prefix=$(WX_PREFIX) --with-cxx=17 --with-gtk --without-libtiff --enable-debug)

Please note: wx installed in /opt/wx requires ld to find it when linking cb:

Code
echo $(WX_PREFIX)/lib >/etc/ld.so.conf.d/wxwidgets.conf