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

Developers can run diagnostics tooling on their iOS and Android devices #46371

Closed
9 tasks done
steveisok opened this issue Dec 23, 2020 · 3 comments
Closed
9 tasks done
Assignees
Labels
area-Meta os-android os-ios Apple iOS Priority:0 Work that we can't release without User Story A single user-facing feature. Can be grouped under an epic.
Milestone

Comments

@steveisok
Copy link
Member

steveisok commented Dec 23, 2020

As an Android/IOS application developer I want to build a configuration of my application using dotnet CLI that includes Diagnostics Classes/EventPipe/Diagnostic Server, so that I can use existing dotnet-* tooling and PerfView for on device debugging and profiling.

Description
To use diagnostic tooling, application needs to include custom implemented EventListeners, EventSources, managed diagnostic classes, native EventPipe library and native Diagnostic Server library. Since all that could make a significant impact on application size (very important for Android/IOS developers), we should exclude all those components in retail builds that will be pass for certification and published in app stores (at least the EventPipe/Diagnostic Server). Since a lot of the diagnostic tasks related to EventPipe handles performance, it still make sense to include all of the above in a configuration that will be as close to the retail build as possible, full optimization (full AOT build on platforms demanding it) and full IL linking. It also needs to be clear to developers that this configuration is not intended for certification, just for profiling and performance testing. Regular debug builds should also include all needed components to be able to run dotnet-* tooling against running application on device.

Tasks

  • Add support for a "profile" build configuration. As part of component architecture, this is now pushed down to SDK's when linking binary. It is possible to include/exclude tracing in final binary, meaning it is possible to define custom build configurations including/excluding native tracing support independent of SKD build. AppBuilder has also been extended to accept a msbuild property where caller can decide what components to include/exclude.
  • EventPipe implemented on devices
  • TCP/IP support either in the Diagnostics Server itself or a distributable proxy
  • CLI is able to launch a profiling application in debug mode
  • Validate diagnostic tooling can be used against a iOS simulator and Android emulator.
  • Validate diagnostic tooling can be used against a running device.
  • Validate EventSource support for AOT.
  • Add support for RuntimeEventSource counters.
  • Add support for selected NativeRuntimeEventSource events.
@steveisok steveisok added os-android os-ios Apple iOS User Story A single user-facing feature. Can be grouped under an epic. labels Dec 23, 2020
@steveisok steveisok added this to the 6.0.0 milestone Dec 23, 2020
@Dotnet-GitSync-Bot Dotnet-GitSync-Bot added the untriaged New issue has not been triaged by the area owner label Dec 23, 2020
@Dotnet-GitSync-Bot
Copy link
Collaborator

I couldn't figure out the best area label to add to this issue. If you have write-permissions please help me learn by adding exactly one area label.

@danmoseley
Copy link
Member

@steveisok do you plan to parent all these User Stories under some Epic? So the universe is in harmony.

@marek-safar marek-safar added Priority:0 Work that we can't release without and removed untriaged New issue has not been triaged by the area owner labels Jan 6, 2021
@marek-safar marek-safar added this to Committed in .NET 6.0 Jan 6, 2021
@ghost ghost added this to Needs triage in Triage POD for Meta, Reflection, etc Jan 29, 2021
@krwq krwq moved this from Needs triage to v-Next in Triage POD for Meta, Reflection, etc Feb 4, 2021
@lateralusX
Copy link
Member

Have run some validation using full AOT on iOS simulator and looks like mono reflections support is handling EventSource needs and didn't hit any other code constructs that seems to be problematic for full AOT targets. Run SampleProfiler, RuntimeEventSource, custom EventSource using counters and custom EventSource using regular event.

@krwq krwq moved this from 6.0 to Needs consultation in Triage POD for Meta, Reflection, etc Jul 19, 2021
.NET 6.0 automation moved this from Committed to Completed Aug 10, 2021
Triage POD for Meta, Reflection, etc automation moved this from Needs consultation to Done Aug 10, 2021
@dotnet dotnet locked as resolved and limited conversation to collaborators Sep 9, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area-Meta os-android os-ios Apple iOS Priority:0 Work that we can't release without User Story A single user-facing feature. Can be grouped under an epic.
Projects
.NET 6.0
  
Completed
Development

No branches or pull requests

6 participants