I'm developing an audio application that can let you create and play music with text files for 32-bit Windows. I'm using C++ as the language and TDM-gcc 4.8.1 (sjlj) as my tool chain. The libraries I use are - SFML, portaudio and libsndfile.
I started getting this APPCRASH error when I close the app. And I noticed that this error happens only when I open a file open/save dialog and then try to exit the app. Multi-threading might have something to do with this because I'm opening file dialogs on separate threads with SFML's Thread class. (so that the main window can keep updating on its own) I imagine portaudio also probably uses its own thread to handle its own buffering and callbacks?
Since the program compiles just fine and I get no errors then, it's hard for me to know what's causing this. I've been changing and commenting out many parts of the program but with no luck... The exception code c000374 supposedly means 'heap corruption', but what does that really mean? What are the common causes? What can I do to narrow down the possible causes?
And at another time, I got this message:
Another error with physical addresses
But how can I know which address corresponds to what part of the program? (or which data or class) Is there a good debugger that can map out class, method and variable names to physical addresses that the executable uses?