dotnet/runtime
View on GitHub[mono][aot] Write a tool to collect mono-aot-cross inputs and rsp files from an msbuild binlog
Open
#103,136 opened on Jun 6, 2024
area-Codegen-AOT-monoenhancementhelp wantedwishlist
Repository metrics
- Stars
- (17,886 stars)
- PR merge metrics
- (Avg merge 12d 11h) (661 merged PRs in 30d)
Description
It would be nice if mono-aot-cross had a companion tool like complog that could collect all AOT compiler invocations from a particular build and zip them up for easy issue repros.
Use case:
- A developer experiences a crash in the mono aot compiler while building their ios/android/wasm app. They open a github issue.
- A member of the .NET team asks the user to do
dotnet build -blto create anmsbuild.binlogfile and then run themono-aot-cross-complogtool to find all the places in the msbuild log where the Mono AOT compiler is invoked, collect all the command line arguments, collect all the input assemblies, and put all that info into a zip file ready for uploading. - The developer checks that the zip file is ok to share and sends it to the .NET team member
- The .NET team member can run
mono-aot-crossunder a debugger (or run a custom build ofmono-aot-cross) with all the same inputs and command line arguments and investigate the issue.
Complications:
mono-aot-crossneeds not only assemblies that are direct inputs but also the contents of all directories specified in aMONO_PATHenvironment variable- Mono AOT compiler has arguments for specifying toolchains, binaries for assemblers/native linkers/etc. We might need to capture those too, to get a fully reproducible build environment.