* clarify that this is not the crash error, but an error with the crash report itself
* improve formatting and message boundaries
* warn the reader that this means the call stack symbols may be inaccurate
(cherry picked from commit 6e37438e5dadd30dc2ce36e468045e0be4d26c83)
Add a new ABORT_MSG macro that allows to show a formatted message before stopping the executable
(cherry picked from commit 0ddee8a4a03fb5c7ee8d18144ca21cd2baad6f01)
Fix vsnprintf to follow standard definition and not some old VC++ behavior, not requiring to include the '\0' character in the count parameter
(cherry picked from commit eee1f2cadf8174caca4849c22ba1fb8f12fc9e08)
* Core/Misc: Log more information in asserts
Add a new function GetDebugInfos() to types that could trigger an ASSERT() to easily include more useful information in crashlogs.
This is an initial commit that requires many more commits to implement the new GetDebugInfos() function in all required types.
If the type doesn't have the function, the global default one is picked which doesn't log anything.
* Core/Misc: Fix dynamic build
Add missing attribute for dynamic build
* Core/Misc: Fix gcc/clang build
* Core/Misc: Rename GetDebugInfos() to GetDebugInfo()
* Core/Misc: Fix FormatAssertionMessage() adding an extra '\0'
* Core/Misc: Add GetDebugInfo support to Unit
* Core/Misc: Add GetDebugInfo support to Creature
* Core/Misc: Add more info to GetDebugInfo for Creature
* Core/Misc: Add GetDebugInfo support to GameObject
* Core/Misc: Add GetDebugInfo support to Player
* Core/Misc: Add more GetDebugInfo info
* Core/Misc: Add GetDebugInfo support to Item
* Core/Misc: Add GetDebugInfo support to Bag
* Core/Misc: Add GetDebugInfo support to Transport
* Core/Misc: Add GetDebugInfo support to TempSummon, Minion, Guardian, Pet
* Core/Misc: Add GetDebugInfo support to Map, InstanceMap
* Core/Misc: Add GetDebugInfo support to Spell
* Core/Misc: Fix build warning
* Core/Misc: Add GetDebugInfo support to Aura
* Core/Misc: Add GetDebugInfo support to UnitAI
(cherry picked from commit 9a924fb9d557434c5a2e4020c80db6e6bfe466ad)
Isn't whatever is used nowadays to make this stuff safe supposed to prevent this sort of stuff?
(cherry picked from commit 9bf69b3849a9d78f3e8d174ed6367a259aaf876f)
Add a new CMake option called PERFORMANCE_PROFILING that should be used only when profiling the performance.
This option is unsupported, do not report any issue happening when enabling this option.
(cherry picked from commit db5c9867e2ffde3657f53bc155b474c5d46884dd)
Add support to char* array showing the string value instead of the pointer address
(cherry picked from commit 4c0c4ab271ddc2d200cd9ccda98e16553dcaf391)
Code cleanup.
Fix buffer overflow crash.
Fix type being truncated to 199 characters.
(cherry picked from commit 9226e212053ef8ec10eeb9509f2ce6ec002d8e3b)