Commit Graph
76 Commits
Author SHA1 Message Date
Shauren 3cbf5fe47f Core/Miscc: Fix compile warning with clang on windows 2025-10-28 14:10:56 +01:00
Shauren 9646bdddaf Core/Miscc: Add file/line/function information to ASSERT_NOTNULL 2025-10-28 13:43:16 +01:00
Shauren 29539aa4de Core/CrashHandler: Fix clang warnings 2025-10-27 09:55:50 +01:00
Shauren c3bc6f568b Core: Fix clang build on windows 2025-09-20 22:18:32 +02:00
Shauren 8fad176f5f Core/CrashHandler: Fix nopch build 2025-07-13 11:44:10 +02:00
Shauren dc0c707213 Core/CrashHandler: Remove MAX_PATH limit 2025-07-06 21:58:33 +02:00
Shauren 1ae7cdd512 Core/Common: Update PCH content to include most commonly used headers 2025-06-11 16:35:31 +02:00
Shauren b13b5142f1 Core/Utilities: Extend make_unique_ptr_with_deleter functionality to allow it to create deleters with compile time constant functions (reduces its size to just sizeof(void*)) 2024-10-01 21:03:44 +02:00
Shauren f3b8503ba6 Core/CrashHandler: Output inlined stack frames 2024-09-23 00:18:06 +02:00
Shauren e76df583f0 Core/CrashHandler: Make WheatyExceptionReport fields not static to ensure consistent destruction order 2024-09-23 00:18:06 +02:00
Shauren fd0a7ba871 Core/CrashHandler: Compile WheatyExceptionReport only once and moved its global variable initializer to all projects using it 2024-09-15 12:13:54 +02:00
Shauren fd4ffc81b2 Core/Misc: Fixed windows _UNICODE incompatibilities 2024-06-02 14:21:13 +02:00
Shauren 67244a1f70 Core/Misc: Replace sprintf with safer alternatives (Trinity::StringFormat or snprintf) 2024-03-01 16:05:34 +01:00
Shauren 0743a2f7bb Core/CrashHandler: Support dumping variables stored in cpu registers (not accurate for all variables) 2024-02-17 13:15:49 +01:00
Shauren 2441ddbea6 Core/CrashHandler: Support ARM64 2024-02-17 12:03:57 +01:00
Shauren 333630b7de Core/Misc: Added windows version checks during startup to avoid confusion about crashes when running on unsupported OS 2023-12-01 19:53:13 +01:00
Shauren 36a6488405 Core/CrashHandler: Add a timeout to retrieving windows version from WMI 2023-11-19 21:22:09 +01:00
Shauren f0a862e71b Core/Misc: Modernize comparison operators 2023-08-24 00:51:26 +02:00
Ovahlord 38440996ee Core/Common: Use the [[unlikely]] keyword in all assert, warning and error macros to allow further compiler optimization (#29124) 2023-07-16 16:11:41 +02:00
Shauren d791afae1d Core/Logging: Switch from fmt::sprintf to fmt::format (c++20 standard compatible api) 2023-01-08 21:16:53 +01:00
ihm-tswow cec4cb0222 Core/Debugging: Improve SymInitialize fail message (#28206)
* 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)
2022-09-05 22:23:02 +02:00
Shauren 3b78762ab8 Core/CrashHandler: Support retrieving windows version names for all future versions
(cherry picked from commit ca9b82fb856c8314c3e84b15bc16ffb3fe8239ba)
2022-06-10 15:30:47 +02:00
Giacomo Pozzoni 2bc1bbd91d Common/Misc: Replace old macros with modern C++ attributes (#26613)
(cherry picked from commit 5ae2a0f47d323fadcfebf44c7b6ec11a3f91c75a)
2022-03-11 11:48:31 +01:00
Kargatum 373ed8f46b Core: whitespace cleanup, reduce double blank line to single (#25795)
* Core/Misc: fix double empty line

* worldserver.conf

(cherry picked from commit a32b6b8ac4c81128a56b282f20837fb085bdd9e7)
2022-03-05 20:07:57 +01:00
Shauren 0b846b2107 Build: Partial support for clang-cl 2022-02-16 20:22:15 +01:00
Shauren 439b027d48 Core/Misc: Cleanup unused includes 2022-02-13 15:07:00 +01:00
Shauren cbcd149ce5 Core/Misc: Explicitly include required headers instead of relying on them to be included by other headers 2022-02-11 14:33:35 +01:00
jackpoz 35755ba343 Core/Misc: Fix Windows 32 bits build
Close #25789

(cherry picked from commit 1cafd4ef74350cb3656917e8e033a5e21dcce193)
2022-01-26 18:48:08 +01:00
Shauren fbcf269207 Core/CrashHandler: Skip logging stack trace of the thread writing the crash log, it was launched by windows with same context as crashing thread
(cherry picked from commit dd34651f4d42ca598b2f1b2ed32e27b4742f4be7)
2022-01-26 18:47:44 +01:00
Shauren cc0affa523 Core/CrashHandler: Remove logging function variation depending on crash reason and print directly to file, not to temporary buffer
(cherry picked from commit c5e1b49e8c02386a0e9edf682692dc6d46cc862f)
2022-01-26 18:47:16 +01:00
Shauren 259bbf1e04 Core/CrashHandler: NULL -> nullptr
(cherry picked from commit 68fdfcaa507d06ce8e823e7848f4c58ef1e62732)
2022-01-26 18:46:56 +01:00
Shauren 473f3db0ab Core/CrashHandler: #ifdef cleanup to make VS not choke when parsing, fixed file being all red in editor
(cherry picked from commit 39c5e03b749d44df346b8f37aed3eb898526365a)
2022-01-26 18:46:43 +01:00
Shauren 7893ac94a0 Core/CrashHandler: Attempt to extract C++ exception object in uncaught exception hander
(cherry picked from commit 83ed35fe62c16f5697f253a9a44bba7dcb83e80d)
2022-01-26 18:43:31 +01:00
Shauren 58d199db48 Core/Misc: Fix compile errors found with msvc /permissive-
(cherry picked from commit b3db50a3b41b2db209327387f59afa1c40532773)
2022-01-26 14:20:13 +01:00
jackpoz f7c1ae01f8 Core/Common: Add macro ASSERT_WITH_SIDE_EFFECTS to be used when asserting conditions that have side effects
(cherry picked from commit 49da3533cd4a0fcd8b2ac7ae0bf4b105f40f8c77)
2022-01-19 21:18:39 +01:00
jackpoz 1fa4403b8c Core/Common: Allow to show a message when aborting
Add a new ABORT_MSG macro that allows to show a formatted message before stopping the executable

(cherry picked from commit 0ddee8a4a03fb5c7ee8d18144ca21cd2baad6f01)
2021-12-22 22:54:18 +01:00
jackpoz 49414acaef Core/CrashHandler: Remove sensitive data from crashlogs
(cherry picked from commit 25bcb1a0b2d9326519d9226dfe968caf26bb4e2d)
(cherry picked from commit 37478c5ac1efb8e4f19ffc94f444e160600c7b27)
2021-12-02 00:39:28 +01:00
jackpoz 9dcbccce26 Core/Misc: Fix vsnprintf usage in ASSERT()
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)
2021-11-16 20:37:27 +01:00
Giacomo Pozzoni d5c41d23e6 Core/Misc: Log more information in asserts (#22783)
* 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)
2021-11-16 20:36:58 +01:00
Warpten 1d4efe2986 Fix invalid arguments to string format in Trinity::Fatal
Isn't whatever is used nowadays to make this stuff safe supposed to prevent this sort of stuff?

(cherry picked from commit 9bf69b3849a9d78f3e8d174ed6367a259aaf876f)
2021-11-15 21:34:44 +01:00
Treeston 12e76f085f Core/Misc: Add a missing include of Windows.h to Errors.cpp
(that last one wasn't me!)

(cherry picked from commit 1dc675f0a17d9c7d1b6e9a07d5c25cdd79bb8788)
2021-11-12 00:16:29 +01:00
Shauren 8866065117 Core/Misc: FIx a GCC warning 2021-10-31 01:39:10 +02:00
Shauren d181c1da75 Core/CrashHandler: Include assertion messages in crash reports
(cherry picked from commit 62db1fb683c13b8dde0cc359564e090e0594658f)
2021-10-23 16:02:44 +02:00
jackpoz 89a232de3a Core/Misc: Add PERFORMANCE_PROFILING CMake option
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)
2021-08-08 21:21:34 +02:00
jackpoz 5b4f61d915 Core/Crash reporting: Add support to char* arrays
Add support to char* array showing the string value instead of the pointer address

(cherry picked from commit 4c0c4ab271ddc2d200cd9ccda98e16553dcaf391)
2021-04-16 21:03:23 +02:00
jackpoz 96406e3408 Core/Crash reporting: Fix buffer overflow
(cherry picked from commit c7043b25f659eddd75fecd916235e524223c7f05)
2021-02-25 18:50:55 +01:00
Shauren b231903932 Core/Misc: Port all the refactors sneaked in master to 3.3.5 include cleanup port 2020-09-04 13:38:24 +02:00
Shauren 1c52d5fff7 Core/Misc: Replace NULL with nullptr 2020-08-14 17:06:03 +02:00
jackpoz bfcb276781 Core/Crash: Refactor and fixes
Code cleanup.
Fix buffer overflow crash.
Fix type being truncated to 199 characters.

(cherry picked from commit 9226e212053ef8ec10eeb9509f2ce6ec002d8e3b)
2020-04-24 17:18:48 +02:00
Aokromes b0bf1275ee New Year 2020-01-02 06:44:10 +01:00