Closed dismine closed 9 years ago
I made a little research and seems like DrMingw always behaves like this. This is a bad news for me.
Sorry for the delay replying.
Yes, this sounds similar to the issue you described to me in private email with the subject "Changes in crash report output", in Feb/Apr this year.
The compiler decided to inline the += operator, and the crash happens inside the inlined code.
It's unavoidable -- whenever one call gets inlined, the stack trace shrinks by one call too. Which call gets reported depends on many factors.
004075F7 003E3998 00000011 00000001 test.exe!main [C:/Qt/Qt5.4.1/Tools/mingw491_32/i686-w64-mingw32/include/c++/bits/basic_string.h @ 950]
The right wayt to interpret this is that the crash is inside function "main", but the code was inlined from operator+=.
DWARF debugging info stores the information about which functions are inlined where, and this could be used to report both functions together. But I don't have the time to pursue such enhancement.
Hi.
I use exchndl.dll for catching crashes in my project. When i tried the last version DrMingw 0.7.6, i got strange behavior. Seems like, now compiler optimizations change crash reports. This never happens in older versions.
I can repeat the issue with test program:
I always strip with
Build with
But if i use optimization O1 or O2 get the same broken result: