Cheers for the advice - I do actually know all this I was a C programmer ( I started on C/C++ 7 - before windows) for years before moving to Java - just being lazy - I guess I've leaned my lesson. This one is a bit of a mystery though
all called, made sure all freeing happens to things that have been allocated (and does happen). The odd thing is the error happens in a piece of code that isn't called before the error occurs - what happens before I call it is what effects it. I am sure I'll find it on monday anyhow - fresh at the start of the week..
cheers again for the advice
mark
-----Original Message----- From: Richard Dobson [mailto:RWD@cableinet.co.uk] Sent: 26 April 2002 21:27 To: pd-list@iem.kug.ac.at Subject: Re: [PD] VST~ update - another fix
In Debug mode, variables and array allocations, etc are initialized with special (non-zero) values, to support tracking of various bugs. If you are a bit lazy about initializing data, this can catch you out as the code runs in debug mode but not in release, e.g. code that says "if(var==0) dothis();". For example, don't rely on the compiler to zero arrays, variables, etc before use. Always clear them explicitly. This helps to document the code as well.
Note that it is possible to debug a release build; you can compile with browse information, etc, and single step a release build. Code is compiled as for a Release build (NDEBUG defined) but you can still debug it.
It is always necessary to test Release builds, even while developing; Microsoft say this explicitly in the documentation, though after all this time I forget where.
VC++ V5 had some bad optimiser bugs that were only fixed with Service Pack 3. So some programs would crash in the Release build unless you turned down, or off, the optimization. If you are using v5.0, you do need that Service pack. I have had no such problems with V6.0 (SP4).
Richard Dobson
mark wrote:
Ok,
There is (yet) another release available - this one should be more tolerant of opening non-existent dll's - however there are still stability issues.
The problem is that they do not exist in the debug version so I have no way of knowing where they are occuring in the release version. I will have another look soon but I've got other stuff to do today.