Skip to content
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

Add ability to upload mono mSYM files and run mono-symbolicate automatically #324

Closed
nathanielcook opened this issue Apr 17, 2019 · 42 comments
Assignees
Labels
diagnostics Related to App Center's Diagnostics service feature request New feature request

Comments

@nathanielcook
Copy link

Describe the solution you'd like
In addition to dSYM folders we also have mSYM folders (if you set MonoSymbolArchive to true in the csproj). AppCenter should allow us to upload mSYM folders and AppCenter should automatically run mono-symbolicate to give us the line numbers for both Android and iOS.

Describe alternatives you've considered
I can run mono-symbolicate locally after I download the raw crash report, but it is a bit of a pain.

Additional context
Add any other context or screenshots about the feature request here.

@nathanielcook nathanielcook added the feature request New feature request label Apr 17, 2019
@nathanielcook
Copy link
Author

Linking a related issue: mono/mono#11625

Would really love it if mono-symbolicate would work on iOS also. Right now it is working for us only on Android. And again, it seems like this should be built in and run automatically by AppCenter's back end.

@patniko patniko added the diagnostics Related to App Center's Diagnostics service label Apr 17, 2019
@winnie
Copy link

winnie commented Apr 18, 2019

@nathanielcook thanks for submitting this! Unfortunately, we don't have the bandwidth to work on this at the moment since a large part of our team is focused on improving HockeyApp scenarios as listed on our roadmap. I'll keep this on our radar though and update this issue if anything changes. Thanks!

@Redth
Copy link
Member

Redth commented May 12, 2020

It's technically possible to do yourself with a bit of effort today.

First you need to enable building the mono symbols on your project with the <MonoSymbolArchive>true</MonoSymbolArchive> msbuild property.

Next, you'll need to use a post-build script to find the **/*.msym file generated as part of the build and upload it somewhere you can grab it from later.

Finally, you can view the "Raw" crash log dump, copy and paste that to a file, and use mono-symbolicate to process it.

@dellis1972 is going to look at writing some better docs around how to use mono-symbolicate with Xamarin apps.

@justintoth
Copy link

We don't want better docs, we want built-in support for crash line numbers in App Center errors (like the rest of the .NET ecosystem has had for 15 years.)

@nathanielcook
Copy link
Author

Agreed; I appreciate the follow-up, but this should definitely be automatic.

@rjhind
Copy link

rjhind commented May 12, 2020

However its implemented, AppCenter needs to show line numbers for Android and iOS crashes.

@pellet
Copy link

pellet commented Jul 22, 2020

yes please add this as a feature, I'm sure a lot of people using xamarin are having trouble tracking down null reference exceptions and other exceptions without knowing which line is causing it.

@BillFulton
Copy link

It's jaw-dropping that line numbers in crash reports are not regarded as critically important. Surely those who set priorities have once developed programs themselves?

@joncortez
Copy link

Please move this feature up on the priority list as it is negatively affecting the value of App Center crash reporting. Thanks!

@joncortez
Copy link

joncortez commented Aug 18, 2020

It's technically possible to do yourself with a bit of effort today.

First you need to enable building the mono symbols on your project with the <MonoSymbolArchive>true</MonoSymbolArchive> msbuild property.

Next, you'll need to use a post-build script to find the **/*.msym file generated as part of the build and upload it somewhere you can grab it from later.

Finally, you can view the "Raw" crash log dump, copy and paste that to a file, and use mono-symbolicate to process it.

@dellis1972 is going to look at writing some better docs around how to use mono-symbolicate with Xamarin apps.

@Redth I tried setting MonoSymbolArchive to true and by itself it did not create the *.mSYM folder. In the release notes for Xamarin.Android 6.1, it states that $(AndroidManagedSymbols) to be set to true together with $(DebugSymbols) to True and $(DebugType) to PdbOnly. I assume we should use MonoSymbolArchive versus AndroidManagedSymbols. What other things we need to set with MonoSymbolArchive to make it work?

@bellissimo
Copy link

bellissimo commented Oct 6, 2020

@joncortez You need $(Optimize) as True, $(DebugSymbols) as True and $(DebugType) as PdbOnly, along with $(MonoSymbolArchive) as True

A couple of queries for Xamarin folk, @Redth :

  1. What is the difference between MonoSymbolArchive and AndroidManagedSymbols? And does it make any difference in this context as to which one we set?

  2. $(DebugType) can be PdbOnly or Portable (which is more supposed to be more efficient). Again, which one is recommended for line numbers, or does it make no difference which in this context?

@dellis1972
Copy link

@bellissimo PdbOnly support is being deprecated in.net 5/6 dotnet/android#5162. So its probably best to try to use Portable now.
AndroidManagedSymbols was removed a while ago , so setting MonoSymbolArchive is the way to control the generation of the mSYM archive.

It looks like we still have AndroidManagedSymbols in our docs, so we should remove that

@cmcnicholas
Copy link

here I am in 2021 and app centre still won't show me line numbers :(

@BillFulton
Copy link

BillFulton commented Mar 30, 2021 via email

@pellet
Copy link

pellet commented Mar 30, 2021 via email

@ghost ghost added the Stale label Jun 30, 2021
@ghost
Copy link

ghost commented Jun 30, 2021

This issue has been automatically marked as stale because it has not had any activity for 60 days. It will be closed if no further activity occurs within 15 days of this comment.

@BillFulton
Copy link

BillFulton commented Jun 30, 2021 via email

@ghost ghost removed the Stale label Jun 30, 2021
@ghost ghost added the Stale label Aug 29, 2021
@ghost
Copy link

ghost commented Aug 29, 2021

This issue has been automatically marked as stale because it has not had any activity for 60 days. It will be closed if no further activity occurs within 15 days of this comment.

@akamud
Copy link

akamud commented Aug 29, 2021

Unbelievable.

@ghost ghost removed the Stale label Aug 29, 2021
@cmcnicholas
Copy link

Can someone please re-review this from the Microsoft team and give a reason why any other ticket is being prioritised over this? This isn't just a quality of life update, it's vital.

@fgiacomelli
Copy link

I'm also looking for a way to have crashlog generated from Xamarin.Android app desymbolicated in Appcenter automatically, without being obliged to use monosymbolicate locally on my PC.

@anpin
Copy link

anpin commented Nov 30, 2021

Would agree with everyone above: this is badly needed for iOS!

@cmcnicholas
Copy link

Oh no you dont

@ghost ghost removed the Stale label Jan 29, 2022
@ghost
Copy link

ghost commented Mar 30, 2022

This issue has been automatically marked as stale because it has not had any activity for 60 days. It will be closed if no further activity occurs within 15 days of this comment.

@ghost ghost added the Stale label Mar 30, 2022
@RyanNieburViewpoint
Copy link

RyanNieburViewpoint commented Mar 30, 2022 via email

@ghost
Copy link

ghost commented May 30, 2022

This issue has been automatically marked as stale because it has not had any activity for 60 days. It will be closed if no further activity occurs within 15 days of this comment.

@anpin
Copy link

anpin commented May 30, 2022

bump

@ghost ghost removed the Stale label May 30, 2022
@BillFulton
Copy link

BillFulton commented May 31, 2022 via email

@ghost ghost added the Stale label Jul 30, 2022
@ghost
Copy link

ghost commented Jul 30, 2022

This issue has been automatically marked as stale because it has not had any activity for 60 days. It will be closed if no further activity occurs within 15 days of this comment.

@MaximMikhisor
Copy link

This issue has been automatically marked as stale because it has not had any activity for 60 days. It will be closed if no further activity occurs within 15 days of this comment.

Even do not dream about it.

@ghost ghost removed the Stale label Jul 31, 2022
@BillFulton
Copy link

BillFulton commented Jul 31, 2022 via email

@danielmeza
Copy link

We need some atention here please!

@dupuisdavid
Copy link

Any update???

@dupuisdavid
Copy link

dupuisdavid commented Oct 6, 2022

MonoSymbolArchive

I'm also trying to generate debug symbols but without success.
Here are my parameters :
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> <MonoSymbolArchive>true</MonoSymbolArchive> <DebugSymbols>true</DebugSymbols> <DebugType>pdbonly</DebugType> <Optimize>true</Optimize> <OutputPath>bin\Release</OutputPath> <ErrorReport>prompt</ErrorReport> <WarningLevel>4</WarningLevel> <AndroidManagedSymbols>true</AndroidManagedSymbols> <AndroidUseSharedRuntime>false</AndroidUseSharedRuntime> <AotAssemblies>false</AotAssemblies> <EnableLLVM>false</EnableLLVM> <BundleAssemblies>false</BundleAssemblies> <DefineConstants>DEBUG;</DefineConstants> <AndroidEnableMultiDex>true</AndroidEnableMultiDex> <EmbedAssembliesIntoApk>true</EmbedAssembliesIntoApk> <CheckForOverflowUnderflow>true</CheckForOverflowUnderflow> <PlatformTarget>AnyCPU</PlatformTarget> <GenerateSerializationAssemblies>Off</GenerateSerializationAssemblies> <AndroidSupportedAbis>armeabi-v7a;x86;x86_64;arm64-v8a</AndroidSupportedAbis> <AndroidLinkMode>SdkOnly</AndroidLinkMode> </PropertyGroup>

Any help?
Thank you!

@brunck
Copy link

brunck commented Oct 12, 2022

@dupuisdavid maybe setting DebugType to "portable" would help?
Reference: #324 (comment)

@BillFulton
Copy link

We need this functionality now!!!

@ghost ghost added the Stale label Dec 13, 2022
@ghost
Copy link

ghost commented Dec 13, 2022

This issue has been automatically marked as stale because it has not had any activity for 60 days. It will be closed if no further activity occurs within 15 days of this comment.

@ghost
Copy link

ghost commented Dec 28, 2022

This issue will now be closed because it hasn't had any activity for 15 days after stale. Please feel free to open a new issue if you still have a question/issue or suggestion.

@ghost ghost closed this as completed Dec 28, 2022
@brunck
Copy link

brunck commented Dec 28, 2022

@winnie Please re-open this issue. This is still a problem and many people are waiting for this functionality (including me).

@ghost ghost removed the Stale label Dec 28, 2022
@BillFulton
Copy link

BillFulton commented Dec 28, 2022 via email

@rhult
Copy link

rhult commented Sep 28, 2023

I got tired of waiting for this to never happen so I put together a small tool that helps somewhat. See the repo at https://github.com/rhult/crash-sharpener

It is not a full solution, but it does two things:

  1. Add information to stack traces that can be uploaded as handled errors to App Center
  2. A tool you can run locally to symbolicate those stack traces

You can use this to automate symbolicating by downloading the errors from App Center using its API, and then symbolicate them on your machine. I have tested it with iOS and Android on .net7 and it works well. I get line numbers from release builds this way.

This issue was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
diagnostics Related to App Center's Diagnostics service feature request New feature request
Projects
None yet
Development

No branches or pull requests