|
Allegro "debug" library files |
BitCruncher
Member #11,279
August 2009
|
What's the difference between the "debug" library files and the others?
|
GullRaDriel
Member #3,861
September 2003
|
There are debugging symbols so the debugger won't display garbage ? "Code is like shit - it only smells if it is not yours" |
Audric
Member #907
January 2001
|
To expand and this answer : Typically, the "debug" version of a library keeps track of data which would otherwise not be preserved during compilation, such as function names. |
Chris Katko
Member #1,881
January 2002
|
In otherwords if your game crashes, it'll say: ??? + ??? //actual place where it exploded ??? + ??? ??? + ??? allegro_function()+??? my_function()+[linenumber] main()[+linenumber] Without debug symbols. And this: allegro_function4()+[linenumber] //actual place where it exploded allegro_function3()+[linenumber] allegro_function2()+[linenumber] allegro_function()+[linenumber] my_function()+[linenumber] main()[+linenumber] With debug symbols. If the error blows up in Allegro (or a syscall) you want those symbols. Also, debugging (usually) shuts off optimization because often times aggressive optimizations change the structure of the code so much that the symbols become difficult for a compiler to figure out. The compiled code is vastly different from the SOURCE code (because it was changed to optimize it), so it has a much harder time trying to link "line X of source file Y" to "bytecode 320282" in memory. -----sig: |
SiegeLord
Member #7,827
October 2006
|
Additionally, Allegro's debug libraries enable internal asserts. E.g. if you pass NULL to al_draw_bitmap, you'll get an assert as opposed to a segfault. Additionally, the debug versions of the library will log things to a log file (this can be enabled in release versions as well, so it's just a change in the default). "For in much wisdom is much grief: and he that increases knowledge increases sorrow."-Ecclesiastes 1:18 |
|