It fixes Heap Corruption when starting KernRate, which I could confirm also in
all the older ros branches by using:
gflags /p /enable Kernrate_i386_XP.exe /full
Kernrate_i386_XP.exe
The older builds did not expose the user-visible symptom of "the app crashing" yet
(due to different memory layout),
but the heap corruption was already happening in all of them.
This is a squashed backport of:
0.4.14-RC-92-g d3e301e28b (the actual fix)
0.4.14-RC-93-g 651a011548 (fix for compiling on GCC RosBE *Lin* 2.1.2 carrier-releaser)
0.4.14-release-24-g 57efac32b1 (just a whitespace addendum)
* symtype: set to SymPdb not SymCv (may be for old pdb-files pre VS 6.0)
* flags: return SYMFLAG_PUBLIC_CODE for SymTagPublicSymbol if its a function.
* flags: do not return SYMFLAG_FUNCTION for SymTagFuncion.
Debug symbols (like PDB, ...) could not be found if the direcory of
the module and application differs. Applying this patch they will
be found.
Dbghelp searches the module path too. (See MS docs).
There is no need to compile our DLLs as shared libraries since we are
managing symbols exports and imports through spec files.
On my system, this reduces the configure-time by a factor of two.