[android] EventPipe loader events on CoreCLR Android mixes relative/absolute paths.

Open
#114,217 7 comments 0 reactions 1 assignee View on GitHub

@lateralusX is already working on this.

Since Apr 3, 2025.

Assessment

This issue has not been assessed yet.

Description

area-AssemblyLoader os-android

EventPipe events like ModuleDCStop, DomainModuleDCStop, KnownPathProbed, ResolutionAttempted, KnownPathProbed, AssemblyLoaderStop mixes relative and absolute paths for assemblies in fileds like ModuleILPath, FilePath, ResultAssemblyPath etc. On OSX these paths tend to always be absolute. CoreCLR on Android should either use relative or absolute paths for these fields.

Data was primarily collected on Android sample HelloWorld in dotnet/runtime repro. In this scenario host extract all assemblies out of APK into internal file system on before running app, so this issue might be related to the host and/or how these paths are resolved when emitting the events. Once figured out on the sample, we should also verify that we get expected behavior when running together with dotnet Android SDK, since they use different solutions depending on how the app gets build. It also utilizes customization to assembly loader that would need to be validated together with above EventPipe events.

Dominant language
C#
Stars
18.3k
Forks
5.6k
PR merge metrics
PR metrics pending

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from dotnet/runtime

All issues in dotnet/runtime

Similar issues

More C# issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.