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

Offline saidus

  • Multiple posting newcomer
  • *
  • Posts: 12
TDM-Gcc is discontinued
« on: January 16, 2020, 03:52:20 pm »
Hello  :)
I saw that the TDM-GCC is not up to date (discontinued).
With wich version you plane deliver in the next release of CB.

Thank you.

Offline oBFusCATed

  • Developer
  • Lives here!
  • *****
  • Posts: 13413
    • Travis build status
Re: TDM-Gcc is discontinued
« Reply #1 on: January 21, 2020, 10:58:33 pm »
mingw-w64 8.1.x or something similar. I don't remember which variant exactly.
(most of the time I ignore long posts)
[strangers don't send me private messages, I'll ignore them; post a topic in the forum, but first read the rules!]

Offline reckless

  • Regular
  • ***
  • Posts: 338
Re: TDM-Gcc is discontinued
« Reply #2 on: March 07, 2020, 07:41:25 am »
I can still provide TDM versions of gcc upto gcc-9.2.0 but multilib is broken and has been for some time so no new versions of those untill the bugs get ironed out upstream.
This just means you have to select which bitness the compiler must support 32 or 64 bit.

Offline killerbot

  • Administrator
  • Lives here!
  • *****
  • Posts: 5490
Re: TDM-Gcc is discontinued
« Reply #3 on: March 07, 2020, 08:53:36 am »
interesting, feel free to give it a try.

Offline TDragon

  • Lives here!
  • ****
  • Posts: 943
    • TDM-GCC
Re: TDM-Gcc is discontinued
« Reply #4 on: March 09, 2020, 01:21:17 am »
Hi there,

Just popping in to say that I've spun up a new TDM-GCC release and shoved everything into Github. Apologies for the radio silence. I started working on GCC 9.1 last year sporadically and finally got everything in a working state again!

It's still a one-man show but feel free to file issues on Github (https://github.com/jmeubank/tdm-gcc) and I might take a peek more often.

In the years since the last TDM-GCC release, the MSYS2 project has gained continual traction and their recent toolchains function quite well. TDM-GCC does still offer 32-bit and 64-bit compilation as a one-stop shop, and tries *real* hard not to tie you to unwanted DLLs. Use whichever works for you!

Cheers,
John E. / TDM
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 ollydbg

  • Developer
  • Lives here!
  • *****
  • Posts: 5910
  • OpenCV and Robotics
    • Chinese OpenCV forum moderator
Re: TDM-Gcc is discontinued
« Reply #5 on: March 09, 2020, 02:29:12 am »
Hi there,

Just popping in to say that I've spun up a new TDM-GCC release and shoved everything into Github. Apologies for the radio silence. I started working on GCC 9.1 last year sporadically and finally got everything in a working state again!

It's still a one-man show but feel free to file issues on Github (https://github.com/jmeubank/tdm-gcc) and I might take a peek more often.

In the years since the last TDM-GCC release, the MSYS2 project has gained continual traction and their recent toolchains function quite well. TDM-GCC does still offer 32-bit and 64-bit compilation as a one-stop shop, and tries *real* hard not to tie you to unwanted DLLs. Use whichever works for you!

Cheers,
John E. / TDM

Hi, John, long time no see. Great work for your new TDM-GCC release!
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 gd_on

  • Lives here!
  • ****
  • Posts: 796
Re: TDM-Gcc is discontinued
« Reply #6 on: March 09, 2020, 03:34:11 pm »
Cool, ... but ...
I tried to compile wxWidgets 3.1.4 (git) : OK
I tried to compile C::B, svn 11979 with this wxWidgets 3.1.4 (git) : OK
I tried to compile one of my own programs, also using this wxWidgets 3.1.4 (git) : OK
In each case, executable is bigger tha previously, but it's normal because this gcc version has more statically linked parts.

But I had a crash in C::B itself when working on a project :
To obtain this crash :
In my workspace menu, "Properties...", and in the "Build Target" tab, I choosed one of the Build targets, clicked on the "Duplicate" button, accepted the name "copy of ..." and simply clicked on the OK button of the "Project/target options" window without changing anything. C::B crashes but no RPT file was created.
No such problem with gcc 9.2 found in msys2 nor with gcc 8.1.
Sorry  :(

« Last Edit: March 09, 2020, 04:09:03 pm by gd_on »
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 #7 on: March 09, 2020, 03:47:42 pm »
Go get us a stack trace and we'll see what we can do!
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 #8 on: March 09, 2020, 04:03:22 pm »
I don't know how to do that !
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 #9 on: March 09, 2020, 04:06:11 pm »
Well, this is where the real development work happens. ;)

You have to build wxWidgets with debug flags (CFLAGS=-g CXXFLAGS=-g) and then build Code::Blocks with debug flags. And then you run CB under GDB (gdb codeblocks.exe) and, when it crashes, you see a lovely little call stack of all the functions that were on the stack when the crash was triggered!
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 #10 on: March 09, 2020, 04:14:43 pm »
Oups ! Some work to do... Need some time.
More, simplu opening and closing the workspace "Properties" is sufficient to create the problem.

PS :
could it be my wxWidgets generation ? I use a .bat file containing, until now :

mingw32-make -f makefile.gcc USE_XRC=1 SHARED=1 MONOLITHIC=1 BUILD=release UNICODE=1 USE_OPENGL=1 DEBUG_LEVEL=0 VENDOR=cb_64 CXXFLAGS="-fpermissive -fno-keep-inline-dllexport -std=gnu++11 -Wno-deprecated-declarations" LDFLAGS="-Wl,--allow-multiple-definition"

« Last Edit: March 09, 2020, 04:23:33 pm by gd_on »
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 gd_on

  • Lives here!
  • ****
  • Posts: 796
Re: TDM-Gcc is discontinued
« Reply #11 on: March 09, 2020, 06:20:49 pm »
With this TDM 9.2 version :
I compiled a debug version of wxWidgets 3.1.4
I compiled a debug version of C::B without contrib plugins.
I copied the wxwidgets dll directly in devel folder and launched this new codeblocks.exe directly in this folder.
I have been able to load a workspace, to open and close a "Property..." window without problems.
So, ... the problem I met before comes probably from one of the contrib plugins.
Need some more work to try to identify which one ...
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 gd_on

  • Lives here!
  • ****
  • Posts: 796
Re: TDM-Gcc is discontinued
« Reply #12 on: March 09, 2020, 07:59:09 pm »
I disabled all plugins the re-enabled them one by one. Apparently, the problem is within lib_finder.
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 killerbot

  • Administrator
  • Lives here!
  • *****
  • Posts: 5490
Re: TDM-Gcc is discontinued
« Reply #13 on: March 09, 2020, 08:09:12 pm »
such cool news, I will give it a try ASAP, to try to build CB also with this toolchain, because maybe, just maybe, it might be interesting to bundle this one in our release ....

I probably will build this weekend, so let's hope that already the work of gd_on paves the road ;-)

Offline TDragon

  • Lives here!
  • ****
  • Posts: 943
    • TDM-GCC
Re: TDM-Gcc is discontinued
« Reply #14 on: March 10, 2020, 02:17:45 am »
Personally I think you should go back to TDM-GCC 4.7.1, that's the last release that didn't bloat C++ code horrifically. ;) But I'll keep rolling newer GCC releases when I can, and maybe the upstream maintainers will find some time to pay a little love to the libstdc++ import cruft that's been happening.
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 #15 on: March 10, 2020, 02:15:40 pm »
OK.
I tried to run codeblocks under gdb. As it's the first time I do such a thing, I'm not totally sure of the result.
I compiled a wxWidget debug version (3.1.4 as told previously, not tested with 3.1.3 version).
I compiled codeblocks project, all wx* plugins and only lib_finder, using -g as cb_release_type and using <Variable name="WX_SUFFIX" value="ud" /> in each compiled project.

Here is a copy of the backtrace obtained in a cmd window after the crash.
If this can help...
gd_on
« Last Edit: March 10, 2020, 02:27:07 pm by gd_on »
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 #16 on: March 11, 2020, 03:08:07 am »
Thanks for grabbing the stack trace! It definitely confirms that the problem happens in the lib_finder contrib plugin's ~ProjectConfigurationPanel() destructor.

Does it happen if you build with CXXFLAGS="-shared-libgcc -shared-libstdc++"?

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.
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 #17 on: March 11, 2020, 09:42:21 am »
I suppose you mean that I have to modify my wxWidgets build, which becomes :
Code
mingw32-make -f makefile.gcc USE_XRC=1 SHARED=1 MONOLITHIC=1 BUILD=debug CFLAGS=-g UNICODE=1 USE_OPENGL=1 VENDOR=cb_64 CXXFLAGS="-g -shared-libgcc -shared-libstdc++ -fpermissive -fno-keep-inline-dllexport -std=gnu++11 -Wno-deprecated-declarations" LDFLAGS="-Wl,--allow-multiple-definition"
if it's still useful to build a debug version.

And, shall I have to generate C::B also with these flags ?

PS :
I tried with these flags in wxWidgets and C::B. The crash is always there. :-[
« Last Edit: March 11, 2020, 11:04:24 am by gd_on »
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 #18 on: March 13, 2020, 02:56:18 pm »
Hi, gd_on.
I just did some test with tdm gcc 9.2 64bit. I don't see crash of the lib_finder plugin. Here is my steps:

1. download wx 3.1.3 release.
2, modify the setup.h to enable the direct2d support
3, use the command line below to build the wx library
Code
mingw32-make -f makefile.gcc USE_XRC=1 SHARED=1 MONOLITHIC=1 BUILD=release UNICODE=1 USE_OPENGL=1 VENDOR=cb CXXFLAGS="-Wno-unused-local-typedefs -Wno-deprecated-declarations -fno-keep-inline-dllexport" >log-release.txt 2>&1
4, I build the CodeBlocks_wx31_64.cbp, all the targets in this cbp are built. (I set the cb_release_type string : -g -O0)
5, open the CodeBlocks_wx31_64.workspace, and set the lib finder plugin as the active plugin, and build this single plugin.
6, run the command: update31_64.bat
7, start the new built cb inside the cb
8, open some test project, and close the new built cb

There is no crash here.
« Last Edit: March 13, 2020, 03:05:52 pm by ollydbg »
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 TDragon

  • Lives here!
  • ****
  • Posts: 943
    • TDM-GCC
Re: TDM-Gcc is discontinued
« Reply #19 on: March 14, 2020, 07:35:23 pm »
That's good news @ollydbg!

This means that @gd_on could be using a version of the lib_finder plugin DLL, or a dependency DLL, built by a different toolchain.

I try to make it possible to mix DLLs and EXEs between TDM-GCC and other toolchains, but there are some cases where it's not. I'll continue to try and spot the incompatibility if I have time, but it sounds like doing a clean build of Code::Blocks and all plugins with TDM-GCC could be enough?

Quote
README-gcc-tdm64.md

If you pass the -shared-libgcc and -shared-libstdc++ flags to TDM-GCC, it will built DLLs and EXEs that depend on the libgcc and libstdc++ DLLs. A DLL or EXE built with these options can safely link to a MinGW.org or MinGW-w64 DLL or EXE and pass exceptions into and out of DLLs, if the other GCC and TDM-GCC share the same GCC libstdc++ ABI. The ABI may change between GCC minor releases. 32-bit and 64-bit DLLs and EXEs mostly cannot interoperate.
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 #20 on: March 14, 2020, 08:01:27 pm »
I tried to build wxwidgets 3.1.3 (and here not 3.1.4 as previously) and C::B (svn 11979) as ollydbg suggested. I have made, as far as I know, a clean build, in a totally new folder ....
But that was not enough. I have always a crash in lib_finder... strange.
As I told before, no problems with 9.2 version distributed with Msys2 !
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 stahta01

  • Lives here!
  • ****
  • Posts: 7582
    • My Best Post
Re: TDM-Gcc is discontinued
« Reply #21 on: March 14, 2020, 11:20:54 pm »
What compiler are you using with the crash?

Tim S.
C Programmer working to learn more about C++ and Git.
On Windows 7 64 bit and Windows 10 64 bit.
--
When in doubt, read the CB WiKi FAQ. http://wiki.codeblocks.org

Offline ollydbg

  • Developer
  • Lives here!
  • *****
  • Posts: 5910
  • OpenCV and Robotics
    • Chinese OpenCV forum moderator
Re: TDM-Gcc is discontinued
« Reply #22 on: March 15, 2020, 01:54:06 am »
Hi, gd_on.
I just did some test with tdm gcc 9.2 64bit. I don't see crash of the lib_finder plugin. Here is my steps:

1. download wx 3.1.3 release.
2, modify the setup.h to enable the direct2d support
3, use the command line below to build the wx library
Code
mingw32-make -f makefile.gcc USE_XRC=1 SHARED=1 MONOLITHIC=1 BUILD=release UNICODE=1 USE_OPENGL=1 VENDOR=cb CXXFLAGS="-Wno-unused-local-typedefs -Wno-deprecated-declarations -fno-keep-inline-dllexport" >log-release.txt 2>&1
4, I build the CodeBlocks_wx31_64.cbp, all the targets in this cbp are built. (I set the cb_release_type string : -g -O0)
5, open the CodeBlocks_wx31_64.workspace, and set the lib finder plugin as the active plugin, and build this single plugin.
6, run the command: update31_64.bat
7, start the new built cb inside the cb
8, open some test project, and close the new built cb

There is no crash here.

Some more information.
I have build the whole targets in the CodeBlocks_wx31_64.workspace under TDM64bit compiler, except the FortranProject(because I use the git-svn) and the NassiShneiderman(because I don't have the boost headers)

I see no crash in the new built 64bit C::B.
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 gd_on

  • Lives here!
  • ****
  • Posts: 796
Re: TDM-Gcc is discontinued
« Reply #23 on: March 15, 2020, 10:24:23 am »
I use the new TDM 64 bit compiler, 9.2 version, to do these tests. I downloaded it via TDM web site.
As I told before, wxWidgets (3.1.3 or 3.1.4) is correctly compiled.
C::B itself is also correctly compiled and works for many usages, exept when I look at a workspace property, as explained before.
Normally, I use only one compiler each time, though I have several different ones on my PC. But only one is in the path and configured to be used by C::B.
May be there is sometimes a mix at compile time, but I don't see why...
I have to investigate more, sure ... If it works for others, it should work for me !

gd_on
« Last Edit: March 15, 2020, 11:04:07 am by gd_on »
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 stahta01

  • Lives here!
  • ****
  • Posts: 7582
    • My Best Post
Re: TDM-Gcc is discontinued
« Reply #24 on: March 15, 2020, 11:45:48 am »
Has only one that tested lib_finder had it configured to work?
Because, I for one have no idea how to configure it to work.
And, I just wondered if it is a configuration issue that is causing it to crash.

Tim S.
C Programmer working to learn more about C++ and Git.
On Windows 7 64 bit and Windows 10 64 bit.
--
When in doubt, read the CB WiKi FAQ. http://wiki.codeblocks.org

Offline gd_on

  • Lives here!
  • ****
  • Posts: 796
Re: TDM-Gcc is discontinued
« Reply #25 on: March 15, 2020, 11:52:53 am »
I don't use lib_finder until now. So it's certainly not configured. Could it be the problem in my case ?
For me disabling it, do the job.
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 oBFusCATed

  • Developer
  • Lives here!
  • *****
  • Posts: 13413
    • Travis build status
Re: TDM-Gcc is discontinued
« Reply #26 on: March 15, 2020, 12:53:55 pm »
If it is a configuration option problem you'll have the same problem using a night build. Is this the case? Can you try it?
(most of the time I ignore long posts)
[strangers don't send me private messages, I'll ignore them; post a topic in the forum, but first read the rules!]

Offline gd_on

  • Lives here!
  • ****
  • Posts: 796
Re: TDM-Gcc is discontinued
« Reply #27 on: March 15, 2020, 02:03:17 pm »
As told previously I use already svn 11979 build.
« Last Edit: March 15, 2020, 03:26:06 pm by gd_on »
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 #28 on: March 15, 2020, 04:26:55 pm »
Since the crash happens in std::locale, what's your system locale? Default character set / code page. Does the configuration contain any non-ascii characters? If so, this is a good place to dig further.
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 #29 on: March 15, 2020, 04:55:11 pm »
My locale is fr_FR : I am french. My standard C::B is configured to use French also in the GUI.
Nevertheless, for these tries I use an other folder where the translation file of the GUI is not installed, and it appears in English.
By default, my C::B uses utf-8.
The strange thing if that it works correctly if I compile wxWidgets and C::B with gcc 8.1, 9.2 (Msys2), 9.2 (Equation), 9.2 (Winlibs) in 64 bits (not tested in 32 bits). Only TDM version gives me this problem and apparently only in a specific menu (I have not found such problems elsewhere, but surely I have not tested everithing !)
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 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.

Offline eckard_klotz

  • Almost regular
  • **
  • Posts: 194
Re: TDM-Gcc is discontinued
« Reply #45 on: July 20, 2022, 11:52:30 am »
Hello All.

Today I found at this page the following comment:
Quote
...FWIW this will be fixed in wxWidgets 3.2.1 (and any 3.3 versions when they're released)...

However Ollydbg is right if he writes:
Quote
I hope TDM(John) can continue his work to fix this issue in his TDM-GCC suite.
As far as I understand it the fix in wxWidegts 3.2.1 is just a final workaround.

Best regards,
                    Eckard Klotz.

Offline thesk

  • Single posting newcomer
  • *
  • Posts: 9
Re: TDM-Gcc is discontinued
« Reply #46 on: August 28, 2022, 11:53:43 am »
Let's hope the new release of C::B should have latest mingw-w64 toolchains with GCC 12.