From: Michael T. <my...@se...> - 2010-12-21 19:34:57
|
Hi, I've been working on an application for some time. Recently I've been given a new notebook and installed Windows 7 Proffessional on it. Moved my MinGW stuff there and continued developing . In a certain situation I've noticed random crashes. As I don't believe on randomness I tried to find a case, where it would crash repeatedly. I managed to do so and I found out it crashed on a free() function after several particular actions. Always the same dynamic array variable. I investigated and searched for standard free() crash bugs. Couldn't find one. So I went on to search for malloc() misuse, array bound bugs (that's why I started a thread on this list on that topic, too). Today I came across compatibility options for the .exe files (right-click on the icon atc...). I tried Windows Vista, then Windows XP, and guess what, for both options no crashes! I tried my test case and no problem at all, then I switched back to non-compatibility mode and the problem appeared again as it did before. My question is - why is this thing happening? It's GTK+ application with latest GTK runtime installed, all GTK+ calls are called from one thread. Another thread is used for data acquisitions from National Instruments hardware card. Their driver and external .dll library is used for this purpose. If it works with Vista compatibility, which is in my opinion bigger crap than 7, why the heck doesn't it work under plain 7? As this is an interesting topic because the use of Windows 7 is expected to spread and so will naturally MinGW compiled code for this system what are your ideas? The crashes were connected to the free() function, however the real problem could be anywhere. Michael |