-
-
Notifications
You must be signed in to change notification settings - Fork 53
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix: Stacktraces for non-exception events #1965
Open
bitsandfoxes
wants to merge
17
commits into
main
Choose a base branch
from
feat/split-logging-integration
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #1608
This PR restores the functionality of capturing
Debug.LogError
and provides stacktraces in the resulting event.Before
After
Implementation Details
In this PR, we split the logging integration into two components:
UnityLogHandlerIntegration
UnityApplicationLoggingIntegration
The
UnityLogHandlerIntegration
hooks into the actual log handler and intercepts all logs. This allows us to access the exception object directly in case ofDebug.LogException
, but comes with notable limitations:string.Format
for each log captured as a breadcrumbApplication.OnMessageReceived
To address these limitations, we now implement both approaches:
UnityLogHandlerIntegration
UnityApplicationLoggingIntegration
LogErrors
viaUnityApplicationLoggingIntegration
We create a synthetic exception that parses the stringified stacktrace during capture and generates an event from it.
Known Limitations
Currently, we cannot provide line numbers for these issues. The
IL2CPPEventProcessor
requires an actually thrown exception to retrieve the necessary images and instruction addresses. In the case ofDebug.LogError
, no such exception exists.