Add Copilot skill: diagnosing dotnet/android across C# / Java / C++ / generated native
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 85/100
- Tipo di issue
- Documentazione
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Tranquilla
- Ambito
- documentation
Direzione di ricerca
Crea .github/skills/diagnose-dotnet-android/SKILL.md, iniziando dal controllo del frontmatter degli skill esistenti e degli skill correlati android-tombstone-symbolication e azdo-build-investigator. Documenta gli esempi di logging specificati in C#, C++ e Java, il filtraggio di logcat, l’analisi dei tombstone e dell’output generato e la verifica delle ipotesi. Il lavoro è completato quando sono coperti tutti i criteri di accettazione e le frasi di attivazione.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Problem
Diagnosing runtime issues in dotnet/android requires following execution across four loosely-coupled layers: C# (Mono.Android), Java (the JCW layer), C++ (the native host), and generated LLVM IR (marshal methods, typemap). There is no CLI debugger that can step through all four, and static reasoning about "who calls whom" is often wrong because the coupling is dynamic (JNI reflection, function pointers passed through init args, registered native methods).
During PR #11091, several hours were lost chasing assumed call paths that turned out to be completely dead (e.g., a C++ registerNatives entry point we were "fixing" was never actually called — verified only after adding logging).
Proposal
Add .github/skills/diagnose-dotnet-android/SKILL.md documenting best practices for cross-language diagnosis:
-
Add logging at each layer and verify assumptions empirically:
- C#:
AndroidLog.Print (AndroidLogLevel.Warn, "TAG", "...")/Logger.Log - C++:
log_warn (LOG_DEFAULT, "..."sv, ...)insrc/native/ - Java (if modifying JCW templates):
android.util.Log.w("TAG", "...")
- C#:
-
Absence of log output is itself evidence. If your log never fires, your mental model of the call graph is wrong. Walk back and re-verify entry points.
-
Grep logcat with meaningful prefixes:
adb logcat -d | grep -E 'TAG|FATAL|tombstone' -
Cross-reference tombstones for native crashes — use the
android-tombstone-symbolicationskill. -
Decompile generated IL/LLVM IR when behavior suggests generator output differs from generator source.
-
Bracket your hypothesis — before "fixing" a suspected bug, add a log that proves the buggy code path is actually reached. If the log doesn't fire, the bug is somewhere else.
Acceptance criteria
- Skill exists with proper frontmatter.
- Triggered by phrases like "diagnose android runtime", "why isn't this code being called", "logcat".
- Includes concrete logging snippets for C#, C++, and Java layers.
- Cross-references related skills (
android-tombstone-symbolication,azdo-build-investigator).
Discovered during
PR #11091 — adding the CoreCLRTrimmable CI lane. Significant time lost to flawed assumptions about call paths that could have been cheaply disproven with a single log statement.
- Lingua principale
- C#
- Stelle
- 2.1k
- Fork
- 580
- Merge medio
- 1g 22h
- PR unite (30g)
- 215
Preparare l'ambiente
Non abbiamo ancora controllato i file di configurazione di questo progetto. Parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di dotnet/android
-
Area: App+Library Build
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno
-
Area: Mono.Android
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
dotnet/android#9192 · 4 commenti · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
-
[aw] Android PR Reviewer is missing required toolForse già presa @jonathanpeppers l’ha presa oggi. Apertaagentic-workflows needs-triage
dotnet/android#12935 · 1 reazione · 2 assegnatari ·
I maintainer di solito rispondono entro 1 giorno
-
Area: App Runtime needs-triage
Difficoltà 4/5 3-5 giorni Idoneità per principianti 56/100
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di dotnet/android
Issue simili
-
area-ai untriaged
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
dotnet/extensions#7790 ·
I maintainer di solito rispondono entro 1 giorno
-
P2 testing
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 90/100
I maintainer di solito rispondono entro 1 giorno
-
area-Infrastructure-coreclr os-ios os-maccatalyst os-tvos untriaged
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
dotnet/runtime#134766 · 3 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
0 - Backlog Bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
BrighterCommand/Brighter#4444 ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
I maintainer di solito rispondono entro 1 giorno