Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Add Copilot skill: diagnosing dotnet/android across C# / Java / C++ / generated native

Aperta Adatta ai principianti
#11,139 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

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
Stack tecnologico
android, cpp, csharp, java
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

Area: Debugger enhancement needs-triage

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:

  1. Add logging at each layer and verify assumptions empirically:

    • C#: AndroidLog.Print (AndroidLogLevel.Warn, "TAG", "...") / Logger.Log
    • C++: log_warn (LOG_DEFAULT, "..."sv, ...) in src/native/
    • Java (if modifying JCW templates): android.util.Log.w("TAG", "...")
  2. 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.

  3. Grep logcat with meaningful prefixes:

    adb logcat -d | grep -E 'TAG|FATAL|tombstone'
    
  4. Cross-reference tombstones for native crashes — use the android-tombstone-symbolication skill.

  5. Decompile generated IL/LLVM IR when behavior suggests generator output differs from generator source.

  6. 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

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di dotnet/android

Tutte le issue di dotnet/android

Issue simili

Altre issue su C#

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.