1
0
Fork 0
mirror of https://github.com/OpenMW/openmw.git synced 2026-02-01 16:18:25 +00:00
Commit graph

88 commits

Author SHA1 Message Date
AnyOldName3
115ee7a353 c a p i t u l a t e 2026-01-07 15:16:01 +00:00
AnyOldName3
18cc753517 Add comment highlighting known fragile code
We know we can't make the struct bigger as everything caught fire when we gave freeze dumps their own path, and was fixed when we switched to a common directory and just separate filenames.
Switching to wchar_t and stopping using UTF-8 here would cause a similar size increase, so similar problems are to be expected.
2026-01-07 15:12:22 +00:00
AnyOldName3
16efa6e5b5 Support long paths on Windows
Apparently we'd never bothered opting in, despite nearly everything in all out apps being entirely compatible and designed with long paths in mind.

GetModuleFileNameW is a bit awkward as it's just about the only Win32 function that returns the minimum of the buffer size and the string size - nearly everything else returns the full size even if it won't fit, so you can pass it a null pointer and a size of zero, and it'll tell you how much space you need to allocate.

I pretty much just copied the mostly-working long-path-friendly call site in the crash catcher to windowspath.cpp, but I also noticed that if the function failed and returned zero, the original implementation would loop forever, so I fixed that.

There was some code that could be ditched from the catch monitor as \\?\ is a prefix you can use to opt into long paths for a single API call instead of using the manifest to set it everywhere.
2026-01-07 15:12:22 +00:00
elsid
d121b606b6
Fix and enforce local variable naming 2025-08-05 21:27:48 +02:00
psi29a
2ffc44c31f Merge branch 'filenameexceptions' into 'master'
Remove file name naming convention check exceptions (#7249)

Closes #7249

See merge request OpenMW/openmw!4551
2025-07-01 20:45:33 +00:00
AnyOldName3
7347f4f4e3 Some review stuff 2025-06-09 14:13:50 +01:00
AnyOldName3
9010a5bb32 Emit visible errors when crash dump creation fails
Also possibly fix the errors, as I was getting them when I started testing, and then wasn't by the time I'd got the code how I wanted it.
However, nothing in this commit looks like it *should* fix any errors.
2025-06-09 00:20:58 +01:00
AnyOldName3
deb070389f Improve Windows crash/freeze catcher UX
* Change crash log to crash dump in messages.
* Make the freeze catcher popup disappear more quickly when OpenMW thaws - we got a few freeze dumps from after a thaw.
* Improve freeze catcher message - hopefully fewer users think it's a false positive they're expected to put up with and we get future reports sooner.
2025-04-12 18:38:55 +01:00
Alexei Kotov
fc850cfe69 Rename components/crashcatcher files to follow naming conventions 2025-02-23 00:18:07 +03:00
elsid
2ebe83c4d5
Use proper order for printf arguments 2024-07-28 20:08:02 +02:00
Austin English
50b2edc121 components/crashcatcher: if OPENMW_FULL_MEMDUMP is set, generate a full memory crashdump
[Bug #7924](https://gitlab.com/OpenMW/openmw/issues/#7924)
2024-05-08 18:27:57 -05:00
elsid
1e07935366
Make crashCatcherInstall no-op for Android
The crashcatcher.cpp is not linked on Android because it's not supported but the
function need to have some definition. Make it empty to avoid link failures.
2024-02-11 03:18:43 +01:00
elsid
b96e32144c
Support lldb in crash catcher 2024-01-19 21:11:23 +01:00
elsid
0095cb604f
Handle sysctl errors without assert 2024-01-19 21:11:20 +01:00
elsid
4efc0e20a3
Report errors on handling the crash 2024-01-19 21:00:33 +01:00
elsid
acb246cbf2
Report errors on printing gdb info 2024-01-19 21:00:33 +01:00
elsid
140cc53b55
Report errors on installing crash handler 2024-01-19 21:00:33 +01:00
elsid
2ef286b27a
Make sure function handling crash does not return 2024-01-19 21:00:33 +01:00
elsid
fffc6101b7
Remove unnecessary nesting 2024-01-19 21:00:32 +01:00
elsid
55501a02c0
Define only one crashCatcherInstall function 2024-01-19 21:00:32 +01:00
elsid
fc12728d25
Move crash_switch variable to cpp file 2024-01-19 21:00:32 +01:00
elsid
8348557893
Move crash handling out of crash handler installation 2024-01-19 21:00:32 +01:00
elsid
7763fe73d8
Make it clear handled signals are always the same 2024-01-19 21:00:32 +01:00
elsid
d54bb5cb5a
Declare variables closer to where they are used 2024-01-19 21:00:29 +01:00
elsid
d6f1fbe2c9
Remove unused user info function 2024-01-19 19:22:15 +01:00
elsid
388a73376c
Use std::optional for siginfo 2024-01-19 19:22:15 +01:00
elsid
c95c8fcc36
Add missing description for SIGABRT 2024-01-19 19:22:15 +01:00
elsid
48c3268bcb
Reduce code duplication for finding signal description 2024-01-19 19:22:14 +01:00
elsid
98844a692d
Regroup crash catcher includes 2024-01-19 19:21:01 +01:00
AnyOldName3
2ed584428c Add missing headers to components/CMakeLists.txt
Otherwise, they won't show up as part of the project in IDEs.
2023-10-15 15:44:24 +01:00
AnyOldName3
f239988c06 Remove unused function 2023-07-12 14:48:09 +01:00
AnyOldName3
899f0a4633 Remove redundant explicit null terminator 2023-07-12 14:46:32 +01:00
AnyOldName3
677c17530e I don't like reformatting things over and over. 2023-07-11 22:58:44 +01:00
AnyOldName3
1bdcb5d6d9 Share the dump directory for crash and freeze dumps
This means the shared memory struct is just 255 bytes longer than a few
commits ago instead of 32K.

Also introduce a function for putting path strings in the shared memory
as there was too much copied and pasted code and it was error-prone.

Also free some handles once we're done with them so they don't leak.
2023-07-11 22:22:26 +01:00
AnyOldName3
48368f79b6 Update Windows crash dump path once we know where we're logging
Manual rewrite of 5102f4b11d
2023-07-05 20:38:46 +01:00
AnyOldName3
3bb3f58c73 Don't put crash dumps in Temp on Windows
Well... unless we fail to get the user profile directory.

Also put freeze dumps in a more appropriately-named file.

Discussed in https://gitlab.com/OpenMW/openmw/-/issues/7455

Manual rewrite of c21695c951

As well as that, I found a bug where the crash dump path was being converted from a std::filesystem::path to a utf8-encoded std::string, then passed to the crash catcher, which converted it to a std::filesystem::path implicitly, but using the system eight-bit code page, which wouldn't usually be UTF-8. That's now fixed by passing the function that expects a path a path instead of a string.
2023-07-05 20:25:22 +01:00
AnyOldName3
5b3e9e15ee Maybe fix Windows freeze catcher
It looks like it's never actually been capable of creating a minidump since the original MR was merged. It worked briefly, and then apparently I managed to dissappear an important function call when rearranging things.
2023-03-04 00:28:22 +00:00
psi29a
92f88c16a9 Merge branch 'remove-strerror' into 'master'
Remove strerror usages

Closes #7151

See merge request OpenMW/openmw!2664
2023-01-30 17:09:39 +00:00
elsid
007ad4e4d1
Write crash log to temporary directory
To make sure current user has rights to do so.
2023-01-30 09:30:55 +01:00
Andrzej Głuszak
9b0a499b58 Remove strerror usages 2023-01-29 22:41:59 +01:00
clang-format-bot
ddb0522bbf
Apply clang-format to code base 2022-09-22 21:35:26 +03:00
Project579
5456ef1d50 Add new functions and overloads to support std::u8string and std::filesystem::path. 2022-09-11 14:41:20 +02:00
Project579
a13709c510 Replace implicit convertions from std::filesystem::path to std::string with correctly converting functions. 2022-09-11 14:41:20 +02:00
Project579
e5c417c968 Make sure all paths are passed as std::filesystem::path instead of std::string where possible. 2022-09-11 14:41:15 +02:00
Arnaud Dochain
1163c12645 Allows to build on macos 10.15 2022-08-28 15:28:41 +00:00
ζeh Matt
92e209c62a
Simplify getIsHungAppWindow 2022-07-14 22:02:01 +03:00
ζeh Matt
0d625abde0
Declare utf8ToUtf16 static 2022-07-14 16:47:27 +03:00
ζeh Matt
100e400fed
Dynamically obtain the function pointer to IsHungAppWindow 2022-07-14 16:46:31 +03:00
elsid
bef15edf0b
Remove redundant ostream, istream, iostream and sstream includes
* Replace by std::to_string and operator+ where possible.
* Move the code requiring to include <sstream> from .hpp to .cpp files.
2022-07-05 01:41:28 +02:00
elsid
d2ed62ec3a
Allow to disable crash catcher on Windows 2022-07-01 22:44:03 +02:00