Author Topic: TDM-Gcc is discontinued  (Read 34927 times)

Offline gd_on

  • Lives here!
  • ****
  • Posts: 796
Re: TDM-Gcc is discontinued
« Reply #30 on: March 15, 2020, 05:54:20 pm »
May be a clue. During a test, my antivirus has decided that codeblocks.exe contained a virus. More, gcc.exe has been erased from my compiler folder without any warning.
I disabled my AV soft, and re-ran C::B. Nothing is erased there, but the bug is still alive  :(
Windows 11 64 bits (23H2), svn C::B (last version or almost!), wxWidgets 3.2.4 (tests with 3.3), Msys2 Compilers 13.2.0, 64 bits (seh, posix : gcc, g++ and gfortran in C:\msys64\mingw64) or 32 bits (dwarf2, posix  in C:\msys64\mingw32).

Offline TDragon

  • Lives here!
  • ****
  • Posts: 943
    • TDM-GCC
Re: TDM-Gcc is discontinued
« Reply #31 on: March 15, 2020, 07:54:09 pm »
Not sure that it would cause the crash, but what AV software are you using? I already had to submit a retest of the tdm-gcc-webdl installer for Windows Defender in order for it not to be quarantined on day 1.
https://jmeubank.github.io/tdm-gcc/ - TDM-GCC compiler suite for Windows (GCC 9.2.0 2020-03-08, 32/64-bit, no extra DLLs)

Offline gd_on

  • Lives here!
  • ****
  • Posts: 796
Re: TDM-Gcc is discontinued
« Reply #32 on: March 16, 2020, 12:16:27 am »
McAfee LiveSafe
Windows 11 64 bits (23H2), svn C::B (last version or almost!), wxWidgets 3.2.4 (tests with 3.3), Msys2 Compilers 13.2.0, 64 bits (seh, posix : gcc, g++ and gfortran in C:\msys64\mingw64) or 32 bits (dwarf2, posix  in C:\msys64\mingw32).

Offline ollydbg

  • Developer
  • Lives here!
  • *****
  • Posts: 5910
  • OpenCV and Robotics
    • Chinese OpenCV forum moderator
Re: TDM-Gcc is discontinued
« Reply #33 on: March 16, 2020, 04:37:52 am »
I think I see a similar crash when I run c::b built from TDM64 under GDB.

This happens when I create a new wxWidgets project by the project wizard, C::B just crashed. GDB shows such bt.

Code
> bt
#0  0x0000000077cef2d0 in ntdll!RtlUnhandledExceptionFilter () from C:\Windows\SYSTEM32\ntdll.dll
#1  0x0000000077cef8d6 in ntdll!EtwEnumerateProcessRegGuids () from C:\Windows\SYSTEM32\ntdll.dll
#2  0x0000000077cf04f2 in ntdll!RtlQueryProcessLockInformation () from C:\Windows\SYSTEM32\ntdll.dll
#3  0x0000000077cf2604 in ntdll!RtlLogStackBackTrace () from C:\Windows\SYSTEM32\ntdll.dll
#4  0x0000000077c5a232 in ntdll!RtlFreeHeap () from C:\Windows\SYSTEM32\ntdll.dll
#5  0x000007feff8d10c8 in msvcrt!free () from C:\Windows\system32\msvcrt.dll
#6  0x000000006cf6c86d in std::locale::_Impl::~_Impl() () from F:\code\wx313-64\lib\gcc_dll\wxmsw313u_gcc_cb.dll
#7  0x000000006cf6ccd0 in std::locale::~locale() () from F:\code\wx313-64\lib\gcc_dll\wxmsw313u_gcc_cb.dll
#8  0x000000006c4cc59b in wxTextCtrl::~wxTextCtrl() () from F:\code\wx313-64\lib\gcc_dll\wxmsw313u_gcc_cb.dll
#9  0x000000006c4cc61e in wxTextCtrl::~wxTextCtrl() () from F:\code\wx313-64\lib\gcc_dll\wxmsw313u_gcc_cb.dll
#10 0x000000006c657e5d in wxWindowBase::Destroy() () from F:\code\wx313-64\lib\gcc_dll\wxmsw313u_gcc_cb.dll
#11 0x000000006c657f64 in wxWindowBase::DestroyChildren() () from F:\code\wx313-64\lib\gcc_dll\wxmsw313u_gcc_cb.dll
#12 0x000000006c3ca62b in wxWindow::~wxWindow() () from F:\code\wx313-64\lib\gcc_dll\wxmsw313u_gcc_cb.dll
#13 0x000000001150520c in wxNavigationEnabled<wxWindow>::~wxNavigationEnabled (this=0x1e68d600, __in_chrg=<optimized out>) at F:/code/wx313-64/include/wx/containr.h:189
#14 0x00000000115013aa in wxPanelBase::~wxPanelBase (this=0x1e68d600, __in_chrg=<optimized out>) at F:/code/wx313-64/include/wx/panel.h:30
#15 0x000000001150fb5a in wxPanel::~wxPanel (this=0x1e68d600, __in_chrg=<optimized out>) at F:/code/wx313-64/include/wx/msw/panel.h:19
#16 0x00000000114cb07e in ProjectPathPanel::~ProjectPathPanel (this=0x1e68d600, __in_chrg=<optimized out>) at D:\code\cb\cb_sf_git\cccrash2019\src\plugins\scriptedwizard\projectpathpanel.cpp:86
#17 0x00000000114cb09b in ProjectPathPanel::~ProjectPathPanel (this=0x1e68d600, __in_chrg=<optimized out>) at D:\code\cb\cb_sf_git\cccrash2019\src\plugins\scriptedwizard\projectpathpanel.cpp:88
#18 0x000000006c657e5d in wxWindowBase::Destroy() () from F:\code\wx313-64\lib\gcc_dll\wxmsw313u_gcc_cb.dll
#19 0x000000006c657f64 in wxWindowBase::DestroyChildren() () from F:\code\wx313-64\lib\gcc_dll\wxmsw313u_gcc_cb.dll
#20 0x000000006c3ca62b in wxWindow::~wxWindow() () from F:\code\wx313-64\lib\gcc_dll\wxmsw313u_gcc_cb.dll
#21 0x000000001150520c in wxNavigationEnabled<wxWindow>::~wxNavigationEnabled (this=0x1ed30200, __in_chrg=<optimized out>) at F:/code/wx313-64/include/wx/containr.h:189
#22 0x00000000115013aa in wxPanelBase::~wxPanelBase (this=0x1ed30200, __in_chrg=<optimized out>) at F:/code/wx313-64/include/wx/panel.h:30
#23 0x000000001150fb5a in wxPanel::~wxPanel (this=0x1ed30200, __in_chrg=<optimized out>) at F:/code/wx313-64/include/wx/msw/panel.h:19
#24 0x0000000011502810 in wxWizardPage::~wxWizardPage (this=0x1ed30200, __in_chrg=<optimized out>) at F:/code/wx313-64/include/wx/wizard.h:55
#25 0x0000000011504aaa in wxWizardPageSimple::~wxWizardPageSimple (this=0x1ed30200, __in_chrg=<optimized out>) at F:/code/wx313-64/include/wx/wizard.h:121
#26 0x00000000114d971a in WizPageBase::~WizPageBase (this=0x1ed30200, __in_chrg=<optimized out>) at D:\code\cb\cb_sf_git\cccrash2019\src\plugins\scriptedwizard\wizpage.cpp:108
#27 0x00000000114dad9e in WizProjectPathPanel::~WizProjectPathPanel (this=0x1ed30200, __in_chrg=<optimized out>) at D:\code\cb\cb_sf_git\cccrash2019\src\plugins\scriptedwizard\wizpage.cpp:338
#28 0x00000000114dadbb in WizProjectPathPanel::~WizProjectPathPanel (this=0x1ed30200, __in_chrg=<optimized out>) at D:\code\cb\cb_sf_git\cccrash2019\src\plugins\scriptedwizard\wizpage.cpp:340
#29 0x000000006c657e5d in wxWindowBase::Destroy() () from F:\code\wx313-64\lib\gcc_dll\wxmsw313u_gcc_cb.dll
#30 0x000000006c657f64 in wxWindowBase::DestroyChildren() () from F:\code\wx313-64\lib\gcc_dll\wxmsw313u_gcc_cb.dll
#31 0x000000006c3ca62b in wxWindow::~wxWindow() () from F:\code\wx313-64\lib\gcc_dll\wxmsw313u_gcc_cb.dll
#32 0x000000006c378fa7 in wxNonOwnedWindow::~wxNonOwnedWindow() () from F:\code\wx313-64\lib\gcc_dll\wxmsw313u_gcc_cb.dll
#33 0x000000006c75c1ce in wxWizard::~wxWizard() () from F:\code\wx313-64\lib\gcc_dll\wxmsw313u_gcc_cb.dll
#34 0x000000006c10308e in wxAppConsoleBase::DeletePendingObjects() () from F:\code\wx313-64\lib\gcc_dll\wxmsw313u_gcc_cb.dll
#35 0x000000006c103138 in wxAppConsoleBase::ProcessIdle() () from F:\code\wx313-64\lib\gcc_dll\wxmsw313u_gcc_cb.dll
#36 0x000000006c5026e1 in wxAppBase::ProcessIdle() () from F:\code\wx313-64\lib\gcc_dll\wxmsw313u_gcc_cb.dll
#37 0x000000006c13ce44 in wxEventLoopManual::DoRun() () from F:\code\wx313-64\lib\gcc_dll\wxmsw313u_gcc_cb.dll
#38 0x000000006c13cb1b in wxEventLoopBase::Run() () from F:\code\wx313-64\lib\gcc_dll\wxmsw313u_gcc_cb.dll
#39 0x000000006c106fec in wxAppConsoleBase::MainLoop() () from F:\code\wx313-64\lib\gcc_dll\wxmsw313u_gcc_cb.dll
#40 0x000000000040540a in CodeBlocksApp::OnRun (this=0x3ae18c0) at D:\code\cb\cb_sf_git\cccrash2019\src\src\app.cpp:901
#41 0x000000006c192aaa in wxEntryReal(int&, wchar_t**) () from F:\code\wx313-64\lib\gcc_dll\wxmsw313u_gcc_cb.dll
#42 0x00000000004022a1 in WinMain (hInstance=0x400000, hPrevInstance=0x0, nCmdShow=10) at D:\code\cb\cb_sf_git\cccrash2019\src\src\app.cpp:338
#43 0x00000000005e9422 in main (flags=<optimized out>, cmdline=<optimized out>, inst=<optimized out>) at C:/crossdev/src/mingw-w64-v7-git20191109/mingw-w64-crt/crt/crt0_c.c:18
#44 0x00000000004013b4 in __tmainCRTStartup () at C:/crossdev/src/mingw-w64-v7-git20191109/mingw-w64-crt/crt/crtexe.c:339
#45 0x00000000004014db in WinMainCRTStartup () at C:/crossdev/src/mingw-w64-v7-git20191109/mingw-w64-crt/crt/crtexe.c:195


If some piece of memory should be reused, turn them to variables (or const variables).
If some piece of operations should be reused, turn them to functions.
If they happened together, then turn them to classes.

salvat

  • Guest
Re: TDM-Gcc is discontinued
« Reply #34 on: April 01, 2020, 11:55:02 am »
Hi @TDragon

I found out that the function GetTickCount64() is not active in the header-file, if I set "#define _WIN32_WINNT 0x0600" to activate it in TDM-GCC-32 (4.x and 9.2.0)
--> undefined reference to `GetTickCount64'

TDM-GCC-64 (4.x and 9.2.0) does compile fine, but strangely it is also not active in the header-file and it can't be find, if I click on "Find decleration of GetTickCount64 " in the context menu ??
Is that a bug in the header-files of MinGW?
« Last Edit: April 01, 2020, 11:57:03 am by salvat »

Offline TobiasA

  • Multiple posting newcomer
  • *
  • Posts: 11
Re: TDM-Gcc is discontinued
« Reply #35 on: November 19, 2020, 02:10:36 pm »
So I'll revive that thread in the hope it pops to the start.

I'm having the same and can reproduce it by compiling wxWidgets 3.1.4 in 64bit, compiling any app with a wxTextCtrl in it and destroying that textctrl. I have some applications with a textctrl in it, and each of them crashes with the stack pointing to the destructor of locale.

Code
The stack is:
#0 0x76f8f230    ntdll!RtlUnhandledExceptionFilter() (C:\Windows\SYSTEM32\ntdll.dll:??)
#1 0x76f8f836    ntdll!EtwEnumerateProcessRegGuids() (C:\Windows\SYSTEM32\ntdll.dll:??)
#2 0x76f90452    ntdll!RtlQueryProcessLockInformation() (C:\Windows\SYSTEM32\ntdll.dll:??)
#3 0x76f92564    ntdll!RtlLogStackBackTrace() (C:\Windows\SYSTEM32\ntdll.dll:??)
#4 0x76efa232    ntdll!RtlFreeHeap() (C:\Windows\SYSTEM32\ntdll.dll:??)
#5 0x7fefee710c8    msvcrt!free() (C:\Windows\system32\msvcrt.dll:??)
#6 0x12a44bd    std::locale::_Impl::~_Impl() () (C:\wxGccTDM314\lib\gcc_dll64\wxmsw314ud_core_gcc_cb.dll:??)
#7 0x12a4920    std::locale::~locale() () (C:\wxGccTDM314\lib\gcc_dll64\wxmsw314ud_core_gcc_cb.dll:??)
#8 0x1153e0f    wxTextCtrlBase::~wxTextCtrlBase(this=0xc01dc70, __in_chrg=<optimized out>) (C:\wxGccTDM314_64\build\msw/../../include/wx/textctrl.h:693)
#9 0xe49951    wxTextCtrl::~wxTextCtrl(this=0xc01dc70, __in_chrg=<optimized out>) (C:\wxGccTDM314_64\build\msw/../../src/msw/textctrl.cpp:354)
#10 0xe49991    wxTextCtrl::~wxTextCtrl(this=0xc01dc70, __in_chrg=<optimized out>) (C:\wxGccTDM314_64\build\msw/../../src/msw/textctrl.cpp:365)
#11 0xf45f26    wxWindowBase::Destroy(this=0xc01dc70) (C:\wxGccTDM314_64\build\msw/../../src/common/wincmn.cpp:578)
#12 0xf46085    wxWindowBase::DestroyChildren(this=0xc0178d0) (C:\wxGccTDM314_64\build\msw/../../src/common/wincmn.cpp:610)
#13 0xdb68ec    wxWindow::~wxWindow(this=0xc0178d0, __in_chrg=<optimized out>) (C:\wxGccTDM314_64\build\msw/../../src/msw/window.cpp:483)
#14 0x117bdd8    wxNavigationEnabled<wxWindow>::~wxNavigationEnabled(this=0xc0178d0, __in_chrg=<optimized out>) (C:\wxGccTDM314_64\build\msw/../../include/wx/containr.h:189)
#15 0x1135e4a    wxPanelBase::~wxPanelBase(this=0xc0178d0, __in_chrg=<optimized out>) (C:\wxGccTDM314_64\build\msw/../../include/wx/panel.h:30)
#16 0x11c0d26    wxPanel::~wxPanel(this=0xc0178d0, __in_chrg=<optimized out>) (C:\wxGccTDM314_64\build\msw/../../include/wx/msw/panel.h:19)
#17 0x11c0ce5    wxPanel::~wxPanel(this=0xc0178d0, __in_chrg=<optimized out>) (C:\wxGccTDM314_64\build\msw/../../include/wx/msw/panel.h:19)
#18 0xf45f26    wxWindowBase::Destroy(this=0xc0178d0) (C:\wxGccTDM314_64\build\msw/../../src/common/wincmn.cpp:578)
#19 0xf46085    wxWindowBase::DestroyChildren(this=0xbfddae0) (C:\wxGccTDM314_64\build\msw/../../src/common/wincmn.cpp:610)
#20 0xdb68ec    wxWindow::~wxWindow(this=0xbfddae0, __in_chrg=<optimized out>) (C:\wxGccTDM314_64\build\msw/../../src/msw/window.cpp:483)
#21 0xe85fb8    wxControlBase::~wxControlBase(this=0xbfddae0, __in_chrg=<optimized out>) (C:\wxGccTDM314_64\build\msw/../../src/common/ctrlcmn.cpp:48)
#22 0x11e7c8c    wxControl::~wxControl(this=0xbfddae0, __in_chrg=<optimized out>) (C:\wxGccTDM314_64\build\msw/../../include/wx/msw/control.h:17)
#23 0x114d347    wxBookCtrlBase::~wxBookCtrlBase(this=0xbfddae0, __in_chrg=<optimized out>) (C:\wxGccTDM314_64\build\msw/../../include/wx/bookctrl.h:55)
#24 0x1152aa3    wxNotebookBase::~wxNotebookBase(this=0xbfddae0, __in_chrg=<optimized out>) (C:\wxGccTDM314_64\build\msw/../../include/wx/notebook.h:103)
#25 0xe2552d    wxNotebook::~wxNotebook(this=0xbfddae0, __in_chrg=<optimized out>) (C:\wxGccTDM314_64\build\msw/../../src/msw/notebook.cpp:296)
#26 0xe25553    wxNotebook::~wxNotebook(this=0xbfddae0, __in_chrg=<optimized out>) (C:\wxGccTDM314_64\build\msw/../../src/msw/notebook.cpp:302)
#27 0xf45f26    wxWindowBase::Destroy(this=0xbfddae0) (C:\wxGccTDM314_64\build\msw/../../src/common/wincmn.cpp:578)
#28 0xf46085    wxWindowBase::DestroyChildren(this=0xbfdd1e0) (C:\wxGccTDM314_64\build\msw/../../src/common/wincmn.cpp:610)
#29 0xdb68ec    wxWindow::~wxWindow(this=0xbfdd1e0, __in_chrg=<optimized out>) (C:\wxGccTDM314_64\build\msw/../../src/msw/window.cpp:483)

My locale is german.
32bit is fine, been using it for quite some time, apps are running fine and stable in both win7 and win10.

Offline ollydbg

  • Developer
  • Lives here!
  • *****
  • Posts: 5910
  • OpenCV and Robotics
    • Chinese OpenCV forum moderator
Re: TDM-Gcc is discontinued
« Reply #36 on: November 19, 2020, 03:47:06 pm »
@TobiasA

For those days, I mainly use the GCC compiler inside the MSYS2 suite.

But someone mention other compilers in this thread.

I can't reply to you in the wx-user Google Group Application crashes on exit in 64bit (My message always get deleted automatically), so I reply it here.
If some piece of memory should be reused, turn them to variables (or const variables).
If some piece of operations should be reused, turn them to functions.
If they happened together, then turn them to classes.

Offline reckless

  • Regular
  • ***
  • Posts: 338
Re: TDM-Gcc is discontinued
« Reply #37 on: January 29, 2021, 08:51:24 pm »
Msys2 mingw-w64 has had some interresting development lately as it added hardening (ASLR / DEP) to pretty much the entire compiler. This has had the benefit that most AV solutions no longer complain about malicious code in the compiled executables.
But it is still early days and the hardening may not work for every project (some projects will crash outright if ASLR is on) and wxwidgets is one of them. This might be because we push the image base high by default on 64 bit builds (does not work with everything) DEP usually works without any problem though. TDM's gcc unfortunatly is wholly incompatible with this and cannot be built with ASLR or DEP at all, probably due to how it handles throwing exceptions from statically linked executables.
Still we are very much still in experimental territory and a more stable implementation might come with the next binutils release.
Atm we rely on a rather substantial patchset for binutils-2.35 but there are plans to make it a feature of upcomming binutils on windows.

Offline reckless

  • Regular
  • ***
  • Posts: 338
Re: TDM-Gcc is discontinued
« Reply #38 on: February 06, 2021, 06:30:03 am »
Well i managed to get a TDM version of gcc-10.2.0 built with ASLR and DEP.
I had to rearrange a few things in the eh_shmem.patch also getting rid of a few of the trap calls which seems to be the problem with it on x86_64.
still it is not completly safe to use ASLR with it as some packages who do not exhibit any failures on standard msys2 mingw-w64 will segfault,
but it is far less than what it has been so it is up to the developer if he wants to try his hand at it.

Atm im building the various make tools (cmake meson ninja) which has turned out to be a massive pain in the butt
since many of the tools over the years have picked up a lot of circular dependencies (freetype fontconfig etc.).

when done i will provide a link for those who want to experiment with it.

Offline AndrewCot

  • Plugin developer
  • Lives here!
  • ****
  • Posts: 678
Re: TDM-Gcc is discontinued
« Reply #39 on: July 31, 2021, 06:32:33 am »
Posting this followup as this is THE TDM wxTextCtrl/locale crash thread.

I have successfully built wxWidget 3.1.5 and CB SVN 12487 from source (batch_build_all_31_64.bat) with TDM 10.3 (github release). The build has then successfully rebuilt CB again and it runs and can load the CodeBlocks_wx31_64.cbp and the CodeBlocks_wx31_64.workspace and successfully did a build again.

As such TDM 10.3 has no issues building CB from source.

My testing results so far as of 31-July-2021 with the CB built follows:

1) I have not seen issues with GetTickCount64() after doing a clean build of wxwidget and CB. I seen this with mixing TDM wxwidget DLL's and the CB exe/dll's.

2) Crash with a wxTextCtrl when destroying that textctrl:
    a) I have been able to verify that CB still crashes at the end of the new wxWidgets project wizard. See below for debug backtrace of a crash.
    b) I have been able to build and run the wxwidget samples\text program without any crashes. This effectively uses a number of wxTextCtrl controls (inherited wxTextCtrl).
    c) I have been able to build and run the wxwidget samples\internat program without any crashes. This effectively uses a number of wxTextCtrl controls and locale.

3) CB built with TDM crashes on exit depending on the plugins enabled/disabled. I do not have a call stack or RPT file.
    3a) I have disabled just the lib_finder plugin and the crash still occurs
    3b) Disabling compiler plugin causes a crash when pressing the disable button.
    3c) I have disabled all plugins and the crashes stop. There are a number of plugins that cause CB to crash on exit and they appear (only checked 20 plugins and 3 caused crashes))
   

4) Debugging CB (CodeBlocks_wx31_64.cbp, not workspace) built with "-g -O0 -ggdb" (debugging overkill) does not help w.r.t. giving any extra info.

5)  The crash backtrace show that the issue is as per previous post and my investigations also came to the same conclusions.
"The problem happens when one of the wxTextCtrl destructors triggers a std::locale::~locale() destructor, which I'm not familiar with and don't see the dependency yet in wxWidgets' code.
I'm generally suspicious of double-deletion in cases like this but I don't see anything in lib_finder triggering a deletion when it shouldn't."

6) I have not been able to produce a simple app that crashes yet. Does anyone have a "simple" app or an example that crashes?

7) Based on the testing done with the sample apps and CB I have come to the current conclusion that CB is doing something that when built with TDM 10.3 (GCC 10.3) causes the crash. There have been two other CB source code changes due to GCC 10.3 compilation crashes when using MSYS2 and as such I think there is may be another one lurking in the Cb code or potentially wxwidget.

GDB debugger back trace after the wxWidget wizard crash:

> bt
#0  0x00007ffd28fcf1e3 in ntdll!RtlIsZeroMemory () from C:\WINDOWS\SYSTEM32\ntdll.dll
#1  0x00007ffd28fd7fa2 in ntdll!RtlpNtSetValueKey () from C:\WINDOWS\SYSTEM32\ntdll.dll
#2  0x00007ffd28fd828a in ntdll!RtlpNtSetValueKey () from C:\WINDOWS\SYSTEM32\ntdll.dll
#3  0x00007ffd28fddf11 in ntdll!RtlpNtSetValueKey () from C:\WINDOWS\SYSTEM32\ntdll.dll
#4  0x00007ffd28ef5bf0 in ntdll!RtlGetCurrentServiceSessionId () from C:\WINDOWS\SYSTEM32\ntdll.dll
#5  0x00007ffd28ef47b1 in ntdll!RtlFreeHeap () from C:\WINDOWS\SYSTEM32\ntdll.dll
#6  0x00007ffd28989c9c in msvcrt!free () from C:\WINDOWS\System32\msvcrt.dll
#7  0x00007ffca4c5765d in std::locale::_Impl::~_Impl() () from F:\Andrew_Development\TDM\AC-WindowsInstaller\src\devel31_64\wxmsw315ud_gcc_cb.dll
#8  0x00007ffca4c57bb0 in std::locale::~locale() () from F:\Andrew_Development\TDM\AC-WindowsInstaller\src\devel31_64\wxmsw315ud_gcc_cb.dll
#9  0x00007ffca4a28f9f in wxTextCtrlBase::~wxTextCtrlBase (this=0x1e027147ee0, __in_chrg=<optimized out>) at F:\Andrew_Development\TDM\wxWidgets-3.1.5\include\wx\textctrl.h:693
#10 0x00007ffca43430b1 in wxTextCtrl::~wxTextCtrl (this=0x1e027147ee0, __in_chrg=<optimized out>) at F:\Andrew_Development\TDM\wxWidgets-3.1.5\src\msw\textctrl.cpp:376
#11 0x00007ffca43430f1 in wxTextCtrl::~wxTextCtrl (this=0x1e027147ee0, __in_chrg=<optimized out>) at F:\Andrew_Development\TDM\wxWidgets-3.1.5\src\msw\textctrl.cpp:387
#12 0x00007ffca443e9fa in wxWindowBase::Destroy (this=0x1e027147ee0) at F:\Andrew_Development\TDM\wxWidgets-3.1.5\src\common\wincmn.cpp:568
#13 0x00007ffca443eb57 in wxWindowBase::DestroyChildren (this=0x1e027187d00) at F:\Andrew_Development\TDM\wxWidgets-3.1.5\src\common\wincmn.cpp:600
#14 0x00007ffca42a0ede in wxWindow::~wxWindow (this=0x1e027187d00, __in_chrg=<optimized out>) at F:\Andrew_Development\TDM\wxWidgets-3.1.5\src\msw\window.cpp:481
#15 0x00007ffcbd91d65c in wxNavigationEnabled<wxWindow>::~wxNavigationEnabled (this=0x1e027187d00, __in_chrg=<optimized out>) at F:\Andrew_Development\TDM\wxWidgets-3.1.5\include\wx\containr.h:189
#16 0x00007ffcbd912f2a in wxPanelBase::~wxPanelBase (this=0x1e027187d00, __in_chrg=<optimized out>) at F:\Andrew_Development\TDM\wxWidgets-3.1.5\include\wx\panel.h:30
#17 0x00007ffcbd91f87a in wxPanel::~wxPanel (this=0x1e027187d00, __in_chrg=<optimized out>) at F:\Andrew_Development\TDM\wxWidgets-3.1.5\include\wx\msw\panel.h:19
#18 0x00007ffcbd8db04e in ProjectPathPanel::~ProjectPathPanel (this=0x1e027187d00, __in_chrg=<optimized out>) at F:\Andrew_Development\TDM\AC-WindowsInstaller\src\plugins\scriptedwizard\projectpathpanel.cpp:86
#19 0x00007ffcbd8db06b in ProjectPathPanel::~ProjectPathPanel (this=0x1e027187d00, __in_chrg=<optimized out>) at F:\Andrew_Development\TDM\AC-WindowsInstaller\src\plugins\scriptedwizard\projectpathpanel.cpp:88
#20 0x00007ffca443e9fa in wxWindowBase::Destroy (this=0x1e027187d00) at F:\Andrew_Development\TDM\wxWidgets-3.1.5\src\common\wincmn.cpp:568
<CUT>


GDB debugger back trace after the CB exit crash:

> bt
#0  0x00007ffd28fcf1e3 in ntdll!RtlIsZeroMemory () from C:\WINDOWS\SYSTEM32\ntdll.dll
#1  0x00007ffd28fd7fa2 in ntdll!RtlpNtSetValueKey () from C:\WINDOWS\SYSTEM32\ntdll.dll
#2  0x00007ffd28fd828a in ntdll!RtlpNtSetValueKey () from C:\WINDOWS\SYSTEM32\ntdll.dll
#3  0x00007ffd28fddf11 in ntdll!RtlpNtSetValueKey () from C:\WINDOWS\SYSTEM32\ntdll.dll
#4  0x00007ffd28ef5bf0 in ntdll!RtlGetCurrentServiceSessionId () from C:\WINDOWS\SYSTEM32\ntdll.dll
#5  0x00007ffd28ef47b1 in ntdll!RtlFreeHeap () from C:\WINDOWS\SYSTEM32\ntdll.dll
#6  0x00007ffd28989c9c in msvcrt!free () from C:\WINDOWS\System32\msvcrt.dll
#7  0x00007ffca35d765d in std::locale::_Impl::~_Impl() () from F:\Andrew_Development\TDM\AC-WindowsInstaller\src\devel31_64\wxmsw315ud_gcc_cb.dll
#8  0x00007ffca35d7bb0 in std::locale::~locale() () from F:\Andrew_Development\TDM\AC-WindowsInstaller\src\devel31_64\wxmsw315ud_gcc_cb.dll
#9  0x00007ffca33a8f9f in wxTextCtrlBase::~wxTextCtrlBase (this=0x1d18684d710, __in_chrg=<optimized out>) at F:\Andrew_Development\TDM\wxWidgets-3.1.5\include\wx\textctrl.h:693
#10 0x00007ffca2cc30b1 in wxTextCtrl::~wxTextCtrl (this=0x1d18684d710, __in_chrg=<optimized out>) at F:\Andrew_Development\TDM\wxWidgets-3.1.5\src\msw\textctrl.cpp:376
#11 0x00007ffca2cc30f1 in wxTextCtrl::~wxTextCtrl (this=0x1d18684d710, __in_chrg=<optimized out>) at F:\Andrew_Development\TDM\wxWidgets-3.1.5\src\msw\textctrl.cpp:387
#12 0x00007ffca2dbe9fa in wxWindowBase::Destroy (this=0x1d18684d710) at F:\Andrew_Development\TDM\wxWidgets-3.1.5\src\common\wincmn.cpp:568
#13 0x00007ffca2f56c07 in wxAuiNotebook::DeletePage (this=0x1d1866e2d70, page_idx=0) at F:\Andrew_Development\TDM\wxWidgets-3.1.5\src\aui\auibook.cpp:2057
#14 0x00007ffca2f56069 in wxAuiNotebook::~wxAuiNotebook (this=0x1d1866e2d70, __in_chrg=<optimized out>) at F:\Andrew_Development\TDM\wxWidgets-3.1.5\src\aui\auibook.cpp:1764
#15 0x00007ffcb520806e in cbAuiNotebook::~cbAuiNotebook (this=0x1d1866e2d70, __in_chrg=<optimized out>) at F:\Andrew_Development\TDM\AC-WindowsInstaller\src\sdk\cbauibook.cpp:80
#16 0x00007ff6d1bcbf32 in InfoPane::~InfoPane (this=0x1d1866e2d70, __in_chrg=<optimized out>) at F:\Andrew_Development\TDM\AC-WindowsInstaller\src\src\infopane.cpp:65
#17 0x00007ff6d1bcbf5b in InfoPane::~InfoPane (this=0x1d1866e2d70, __in_chrg=<optimized out>) at F:\Andrew_Development\TDM\AC-WindowsInstaller\src\src\infopane.cpp:72
#18 0x00007ffca2dbe9fa in wxWindowBase::Destroy (this=0x1d1866e2d70) at F:\Andrew_Development\TDM\wxWidgets-3.1.5\src\common\wincmn.cpp:568
#19 0x00007ff6d1be5704 in MainFrame::OnApplicationClose (this=0x1d186687100, event=...) at F:\Andrew_Development\TDM\AC-WindowsInstaller\src\src\main.cpp:3125
#20 0x00007ffca2aa38c5 in wxAppConsoleBase::HandleEvent (this=0x1d185dd2460, handler=0x1d186687100, func=(void (wxEvtHandler::*)(wxEvtHandler * const, wxEvent &)) 0x7ff6d1be5154 <MainFrame::OnApplicationClose(wxCloseEvent&)>, event=...) at F:\Andrew_Development\TDM\wxWidgets-3.1.5\src\common\appbase.cpp:654
<CUT>

Offline TobiasA

  • Multiple posting newcomer
  • *
  • Posts: 11
Re: TDM-Gcc is discontinued
« Reply #40 on: April 13, 2022, 09:31:21 am »
Digging this up again, tried it on wxWidgets 3.1.3, 3.1.5 and 3.1.6 and 64 bit and get the same crash. Any workaround for that?

Offline BlueHazzard

  • Developer
  • Lives here!
  • *****
  • Posts: 3353
Re: TDM-Gcc is discontinued
« Reply #41 on: April 13, 2022, 10:13:26 pm »
Probably only to not use tdm
i uses since quite some time msys2 compiler and it works quite nice. And big plus is easy updating :)
Also there is a winlibs compiler out there that also gets quite frequent updates: https://winlibs.com/

Offline eckard_klotz

  • Almost regular
  • **
  • Posts: 194
Re: TDM-Gcc is discontinued
« Reply #42 on: July 19, 2022, 08:17:41 am »
Hello All.

May be the following discussion regarding the wxTextCtrl issue while using the TDM GCC 64 bit will interest you:


@TDragon: Are you able to support this or to forward this to the project you get your sources from?

Best regards,
                    Eckard Klotz.

Offline AndrewCot

  • Plugin developer
  • Lives here!
  • ****
  • Posts: 678
Re: TDM-Gcc is discontinued
« Reply #43 on: July 19, 2022, 09:22:14 am »
I very much doubt you will get any traction with this as you have seen in the Githiub TDM repo there are a number of issues and there have been no commits since 7-Jun2021.

Saying that good luck.

Offline ollydbg

  • Developer
  • Lives here!
  • *****
  • Posts: 5910
  • OpenCV and Robotics
    • Chinese OpenCV forum moderator
Re: TDM-Gcc is discontinued
« Reply #44 on: July 19, 2022, 04:06:10 pm »
Hello All.

May be the following discussion regarding the wxTextCtrl issue while using the TDM GCC 64 bit will interest you:


@TDragon: Are you able to support this or to forward this to the project you get your sources from?

Best regards,
                    Eckard Klotz.

If you looked at this thread, I see that I reported this crash in year 2020 in this post: Re: TDM-Gcc is discontinued

I'm grad that the wx developer VZ has found at least some reason of this crash.

I hope TDM(John) can continue his work to fix this issue in his TDM-GCC suite.

BTW: I'm using the MinGW-GCC compiler from msys2 projects for many years, their GCC does not cause such crash. Another reason to use msys2 is that it has a lot of pre-build libraries, they can be simply installed by pacman command. So I don't need to build those libraries myself.
If some piece of memory should be reused, turn them to variables (or const variables).
If some piece of operations should be reused, turn them to functions.
If they happened together, then turn them to classes.