You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Mark mono/xamarin/dotnet system symbols as not inApp (iOS) #4194
The currently implementation of InAppExcludes only matches against either Module or Function and trying to identify all of the function names to match against isn't very practical.
Ideally we could exclude based on the package name (e.g. libmonosgen bit in the example frame above).
I'm wary about any of those accidentally matching against package names when they were designed to match module names.
marking code as InApp takes priority so if users are explicitly marking something it should be fine. We can also write some during build with our msbuild plugin? Check everything that's being compiled in and mark all of those as InApp?
To match against packages, we'd need a regex that could unpack something like this "/some/path/libmonosgen-2.0.dylib"
changed the title [-]Mark mono/xamarin/dotnet system symbols as not inApp[/-][+]Mark mono/xamarin/dotnet system symbols as not inApp (iOS)[/+]on Jun 5, 2025
Activity
jamescrosswell commentedon May 26, 2025
Tricky, the JSON for those frames doesn't include any Module information:
{ "function": "mono_jit_exec", "symbol": "mono_jit_exec", "package": "/Users/jamescrosswell/Library/Developer/CoreSimulator/Devices/CFB78342-B78D-48E0-87A2-3B3A1311A8EE/data/Containers/Bundle/Application/0B1D5D54-E77B-4582-9033-B45046B4C46C/Sentry.Samples.Maui.app/libmonosgen-2.0.dylib", "in_app": true, "data": { "orig_in_app": 0, "client_in_app": false, "symbolicator_status": "symbolicated" }, "image_addr": "0x1158d8000", "instruction_addr": "0x11593ea3c", "symbol_addr": "0x11593e8d4" },The currently implementation of
InAppExcludesonly matches against eitherModuleorFunctionand trying to identify all of the function names to match against isn't very practical.Ideally we could exclude based on the package name (e.g.
libmonosgenbit in the example frame above).bruno-garcia commentedon May 26, 2025
it's in package the json you shared
jamescrosswell commentedon May 26, 2025
Yes I see that. That's why I added this to my comment:
Do we want to do this though? These are our current Excludes:
sentry-dotnet/src/Sentry/SentryOptions.cs
Lines 1296 to 1337 in aae7342
I'm wary about any of those accidentally matching against package names when they were designed to match module names.
We could probably do it if we were careful about how we designed the matcher. These are the two matchers we have for Module and Function:
sentry-dotnet/src/Sentry/SentryStackFrame.cs
Lines 19 to 20 in 34b5598
To match against packages, we'd need a regex that could unpack something like this "/some/path/libmonosgen-2.0.dylib"
bruno-garcia commentedon May 26, 2025
marking code as InApp takes priority so if users are explicitly marking something it should be fine. We can also write some during build with our msbuild plugin? Check everything that's being compiled in and mark all of those as InApp?
We could do contains (libmono) or (monosgen)
Flash0ver commentedon Jun 3, 2025
We would like to add a dedicated "Package-Matcher" next to the existing "Module-" and "Function-Matchers".
sentry-dotnet/src/Sentry/SentryStackFrame.cs
Lines 19 to 20 in 9beef00
See also #4236 (comment)
[-]Mark mono/xamarin/dotnet system symbols as not inApp[/-][+]Mark mono/xamarin/dotnet system symbols as not inApp (iOS)[/+]