Commit graph

112 commits

Author SHA1 Message Date
github-actions[bot]
0072f49fe8 Merge remote-tracking branch 'origin/master' into api14-rollup 2025-12-07 21:13:12 +00:00
goaaats
b35faf13b5 Show unhandled exceptions through VEH 2025-12-07 13:04:11 +01:00
Haselnussbomber
d94cacaac3
Disable SafeHandles 2025-12-05 19:10:31 +01:00
goaaats
20041be27c Convert ReliableFileStorage to async 2025-11-18 00:44:04 +01:00
goaaats
95ec633cc5 merge 2025-06-22 21:39:38 +02:00
goaaats
999e3ea57a ForceSave() when enabling safe mode from the exception window 2025-04-25 22:49:05 +02:00
goaaats
4e724fbe45 Remove old PInvoke libs 2025-04-15 23:58:01 +02:00
goaaats
fe562e8cf3 Remove most hand-authored native functions 2025-04-12 22:20:55 +02:00
goaaats
ad3b0f0194 Fix some warnings 2025-04-08 22:21:04 +02:00
goaaats
0690cce995 wip bindings upgrade 2025-04-06 20:59:23 +02:00
Kaz Wolfe
445fe09181
fix: dalamud boot deadlock over wine 2025-03-24 18:50:39 -07:00
goaaats
61a4f3bcef Re-remove obsolete ServicePointManager TLS version override 2025-03-24 19:17:59 +01:00
marzent
7cac19ce81
Implement dalamud-platform launch argument (#1452)
* implement dalamud platform launch arg
* implement cross-platform gamePath fallback
* refactor platform detection heuristic
* add cross platform dalamud runtime detection
2025-03-24 08:42:24 -07:00
goaaats
cf1d8a81c6 Remove obsolete ServicePointManager TLS version override 2025-03-08 16:27:52 +01:00
goat
ce5ee71c91 patch NNBSP number separator out of cultures that use it (fixes #2157) 2024-12-26 13:48:28 +01:00
goat
bd170ee74a
Merge pull request #1945 from KazWolfe/fixed-versioning
feat: Use new versioning strategy
2024-07-25 01:01:50 +02:00
Soreepeong
877906ae15 Show logs on loading dialog 2024-07-21 19:09:05 +09:00
goat
25cf7fde10 logging: limit main log file size to 100mb 2024-07-19 18:50:15 +02:00
Kaz Wolfe
2b96f2187c
feat: Use new versioning strategy
- Rename BuildHash to SCMVersion
- Expose the actual commit hash as a new `commit_hash.txt`
- Update GetGitHash() to actually return the git hash
2024-07-18 14:51:03 -07:00
Kaz Wolfe
4dcb69594b
fix: cs changes blocking build
make ThisAssembly public
2024-06-26 08:48:26 -07:00
srkizer
bd2c9b2258
Apply most of Api10ToDo (#1782) 2024-04-20 23:25:33 -07:00
srkizer
8ff4662f1f
boot: implement --unhandled-exception=stalldebug (#1690)
Using this option will stall the crashed thread until the debugger
attaches, so that the newly attached debugger can be handed over the
exception, enabling breaking at correct stack location.

`--no-exception-handlers` injector option controlled whether Dalamud
Crash Handler would intercept exceptions before. Those are now either
`default` or `none` option for `--unhandled-exception`.
2024-04-20 21:20:11 -07:00
srkizer
87b9edb448
Add IInternal/PublicDisposableService (#1696)
* Add IInternal/PublicDisposableService

Plugins are exposed interfaces that are not inherited from
`IDisposable`, but services implementing plugin interfaces often
implement `IDisposable`. Some plugins may try to call
`IDisposable.Dispose` on everything provided, and it also is possible to
use `using` clause too eagerly while working on Dalamud itself, such as
writing `using var smth = await Service<SomeService>.GetAsync();`. Such
behaviors often lead to a difficult-to-debug errors, and making those
services either not an `IDisposable` or making `IDisposable.Dispose` do
nothing if the object has been loaded would prevent such errors. As
`ServiceManager` must be the only class dealing with construction and
disposal of services, `IInternalDisposableService` has been added to
limit who can dispose the object. `IPublicDisposableService` also has
been added to classes that can be constructed and accessed directly by
plugins; for those, `Dispose` will be ignored if the instance is a
service instance, and only `DisposeService` will respond.

In addition, `DalamudPluginInterface` and `UiBuilder` also have been
changed so that their `IDisposable.Dispose` no longer respond, and
instead, internal functions have been added to only allow disposal from
Dalamud.

* Cleanup

* Postmerge fixes

* More explanation on RunOnFrameworkThread(ClearHooks)

* Mark ReliableFileStorage public ctor obsolete

---------

Co-authored-by: goat <16760685+goaaats@users.noreply.github.com>
2024-03-16 15:58:05 +00:00
srkizer
5777745ab3
Add injector option to not apply any exception handlers (#1541)
* Add injector option to not apply any exception handlers

* Log as warning if NoExceptionHandlers is set
2023-12-07 05:06:39 +00:00
goat
f44c6794e7
chore: tidy-up, move files shared between dalamud and injector into separate assembly 2023-09-30 16:11:52 +02:00
goat
125034155b
feat: first pass at ReliableFileStorage service 2023-09-27 22:10:21 +02:00
Kaz Wolfe
0fca2c80c3
Fix a build error, oops 2023-09-12 18:14:54 -07:00
goat
98bdec1e34
chore: only expose manifests as interfaces 2023-06-29 13:29:33 +02:00
goat
2e380b10d5
feat: allow specifying logging path via --logpath, make sure serilog can always write to injector log 2023-06-19 19:53:06 +02:00
goat
b901ad5aff
fix: move log retention out of EntryPoint.cs, redo retention behaviour for release 2023-06-19 19:53:05 +02:00
goat
fe6196d0ad
merge master into profiles 2023-05-28 16:06:05 +02:00
goat
276a80067c
chore: delete old logs every launch on Release 2023-05-24 22:10:52 +02:00
goat
b80681e3e1
fix: terminate process if service unload fails 2023-05-22 21:01:37 +02:00
goat
cbfd4bbd2a
fix: skip a stack frame in the VEH callback handler 2023-04-12 21:28:03 +02:00
goat
1096a49dd6
feat: show throwing plugin in unhandled managed exceptions 2023-04-11 19:28:16 +02:00
Aireil
d8ad2a8863
chore: load log level from config on debug builds 2023-02-20 20:13:13 +01:00
Caraxi
7b3a09e405 Show FFXIVClientStructs Version ID in dev menu 2023-01-22 18:48:51 +10:30
goat
39f8e5a37e
fix release build 2023-01-11 18:47:23 +01:00
goat
cc4a0652c2
feat: configurable log path 2023-01-11 18:37:33 +01:00
goat
317545c483
deps: upgrade to goaaats.Reloaded.Hooks-goat.3
Needed for a feature that lets us specify the location of FASM DLLs
2022-11-19 22:48:37 +01:00
goat
9c16359914
feat: batch config saves 2022-11-01 19:44:57 +01:00
goat
09c4828a9e
chore: clean up file-scoped namespace fallout 2022-10-29 15:54:24 +02:00
goat
987ff8dc8f
chore: convert Dalamud to file-scoped namespaces 2022-10-29 15:23:22 +02:00
Soreepeong
8e21134cdf Fix log culling 2022-09-13 11:37:10 +09:00
Kaz Wolfe
abecf2ffe4
Add Per-Plugin Log Filtering Support
This commit adds first-pass support for more robust plugin log filtering. No changes were made that affect PluginLog's APIs nor log format. This change works by making use of Serilog's "SourceContext" property to attach plugin information to all log messages. The in-game log UI can then be used to filter based on this property.

Future expansions for this system include the ability to set different plugins to different log levels (something that already can technically be done, but requires those plugins be hard-coded through MinimumLevel.Override), creating new root loggers for each plugin (thereby giving plugin devs more control over their logging should they want to use it), plus other potential improvements in the way of adding context or rich information.

- Update PluginLog to attach a "SourceContext" property to all log messages.
- Tweak the SerilogEventSink to pass the original log event around.
- Suppress Info/Debug/Verbose exceptions from Troubleshooting reports.
- Fix the ConsoleWindow log filter to use _all_ filters, rather than just one.
- Add ConsoleWindow dropdown to select plugins to filter logs by
- Add support for multiple log levels to ConsoleWindow filtering
2022-08-23 21:36:55 -07:00
kizer
58ceb1dc87
Offer to restart game from VEH exception handler (#936) 2022-07-26 21:14:48 +02:00
goat
8bc4d362ad
feat: new VEH experience 2022-07-23 20:25:05 +02:00
kizer
379c52f5d4
Show error messagebox outside CLR from VEH (#933) 2022-07-23 17:36:37 +02:00
goat
8c066451ec
fix: update Iced in Injector, fix build 2022-07-17 14:46:48 +02:00
Soreepeong
28ff6d9f00 wip 2022-06-30 23:16:17 +09:00