On Mon, 2012-08-27 at 14:19 +0800, Liuwh wrote:
> Hi all,
>
> I downloaded FlightGear/SimGear/fgdata v2.9 via GIT, and also
> downloaded pre-compiled 3rdParty dependencies from
> ftp://ftp.ihg.uni-duisburg.de/FlightGear/Win32/MSVC/fgfs-win32-VS100-3rdParty+OSG-20120411.zip
>
> I built it, the release version can run well, but the debug version
> crashed when I the weather from dialog and click "close", the result
> was the same when I operated the menu and click apply or close. The
> call stack indicates that program stopped in _CrtIsValidHeapPointer
> called by puGroup from PLIB functions.
>
> Did anyone ever encounter this problem?
>
> BTW, the debug version runs very slow, I don't know whether this also
> occured when others debugging FlightGear.
>
> Thanks!
Hi Liuwh,
Not sure why you are trying to build the Debug
version of fgfs, since the 3rd party zip you mentioned
does NOT contain the 3rdparty Debug library builds...
This is no particular problem when the library is a
DLL (shared) library, except you will not be able
to trace into it, but you are mixing the runtimes
Release and Debug when using static libraries like
PLIB...
Quite surprised you even got Debug fgfs to link...
I am steadily building up a parallel Release and
Debug build, see -
http://downloads.fgx.ch/WIN32
but note I have not yet added say plib-msvc100-rel,
nor dbg.zip, and some others, yet... Must try to get
to that soon...,
Second, the Debug version certainly runs up to 10
or MORE times SLOWER ;=((
(a) All functions have extended entry and exit code,
prologue and epilogue, where the user stack is filled
with a pattern like 0xdd, so the runtime can check if
you have initialized all the required variables before
using them...
(b) All functions perform stack level checking on
exit.
(c) All memory allocated is a special debug allocation
where more than the requested bytes is allocated,
and a leader and trailer area are again filled with a
pattern, 0xde IIRC, and the application receives a pointer
after the leader so on memory release, the runtime
can check if you have under or over run the requested
memory...
Now fgfs allocates a LOT of memory, and this includes
memory for std lists, vectors, maps, etc, so for example
you will see it spends a long time to say load the
navaids... and lots more time loading scenery... etc.
(d) And the Debug version has a LOT of assert()
code added... In fact it is sometimes difficult to
get the Debug version to run without the usual
assertion failed dialog... Maybe that is what you
mentioned as _CrtIsValidHeapPointer...
These 'bugs' that show up only in the MSVC Debug
version seldom get addressed, since there are very few
of us ready to take all the time required to track
them down ;=(( and then convince the big unix base
developers that there is a problem that they just
do NOT see...
HTH, and I am glad to hear the Release runs
well... congrats on doing your own build ;=))
That takes some effort...
Enjoy...
Regards,
Geoff.
--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and
threat landscape has changed and how IT managers can respond. Discussions
will include endpoint security, mobile security and the latest in malware
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
Flightgear-devel mailing list
Flightgear-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/flightgear-devel