When debugging our root 5.26/Visual Studio 8 application, we exit with a very long string of “leak” reports. The leaks are not real, but eventually, the IDE freezes. We can prevent this with “Break All” followed quickly by “Stop Debugging”. What we can not do is see any useful output from the debugger - real leaks, for instance.
If we don’t break/stop the dump quickly enough, the IDE freezes. We compiled 5.26 and got the same result as with the debug MSI. I have zipped up a very minimal example project along with two output samples (WithRoot.txt and WithOutRoot.txt). You can change the #define USEROOT to see the expected debug output. Hopefully this project will misbehave for you so that you can make some suggestions.
Also, a curiosity: my new version of Kaspersky anti-virus reports “Behavior similar to PDM.Hidden data sending.” when the application with root starts. The debug output is lost even without Kaspersky.
LostDebugInfo.zip (25.2 KB)
Well, this is apparently a known issue. See for example this thread (you can also try to google for it…)
One solution would be to build root in debug mode, but without linking to the debug runtime libraries, by passing --build=debug --disable-winrtdebug to the configure script:
Anyway, if I find a solution (or a work around), I’ll let you know.
Thanks for the link and for keeping a work around in mind. We’ll try the disable flags.
We had difficulty getting the --build=debug --disable-winrtdebug to run at all and had to move on. For now we’ll be using 3rd party static analysis tools (Code Sonar, slower, but acceptable, particularly to the FDA). If you have recommendations for other coverage tools please let us know. Thanks, also, for keeping this problem in mind.
On Windows I was using Rational tools like Purify, but a quite old version and don’t have any license anymore…
And concerning the problem, I could try to fill a bug report to Microsoft, but last time it was not really helpful, see this report
Anyway, I’m not going to spend too much time on it, but I’ll let you know in case I have a possible work around.