Commit graph

98 commits

Author SHA1 Message Date
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
kizer
716736f022
Improvements (#903) 2022-06-29 11:51:40 +02:00
goaaats
8383c7c44d
chore: flush the log on unhandled exceptions 2022-06-27 00:27:14 +02:00
kizer
8e7f370ddd
Load services asynchronously whenever possible (#893) 2022-06-24 22:12:51 +02:00
goaaats
b5963888bb
feat: print git hashes in log on init 2022-06-21 15:59:56 +02:00
goaaats
c3e16ad92c
feat: add "--console" arg to show boot console, write Dalamud logs to console if set 2022-06-20 15:29:49 +02:00
goaaats
d2335274ee
feat: delay main thread continuation until GameFixes are applied
This is a temporary workaround until we have infrastructure to intercept winapi in C++
2022-05-27 14:12:15 +02:00
goaaats
28102b405b
chroe: don't use AsmHook for wndproc fix 2022-05-26 15:41:40 +02:00
goaaats
baad575c53
feat: add wndproc nullref fix 2022-05-26 01:43:10 +02:00
goat
96ed22534c
chore: fix some warnings, cleanup 2022-04-25 20:04:17 +02:00
Soreepeong
e64cc7e687 Print dotnet stack trace on veh error msgbox, and use precompiled headers. 2021-12-24 12:23:23 +09:00
goat
1561fbac00
Revert "refactor(Dalamud): switch to file-scoped namespaces"
This reverts commit b5f34c3199.
2021-11-18 15:23:40 +01:00
goat
b5f34c3199
refactor(Dalamud): switch to file-scoped namespaces 2021-11-17 19:42:32 +01:00
Soreepeong
6553507146 Add DelayInitializeMs to DalamudStartInfo 2021-11-12 22:31:43 +09:00
goaaats
93863dbc8a
feat: add DALAMUD_WAIT_DEBUGGER env var 2021-11-07 16:43:08 +01:00