Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Importante
Visual Studio App Center è stato ritirato il 31 marzo 2025, ad eccezione delle funzionalità di Analisi e diagnostica, che continueranno a essere supportate fino al 30 giugno 2026. Ulteriori informazioni.
La diagnostica di App Center supporta la simbolizzazione degli arresti anomali del codice non gestito C/C++ nell'applicazione. È possibile simbolicare i crash del codice non gestito che hanno origine nel codice NDK di Android, e i crash del codice non gestito formattati come minidump del Breakpad caricati tramite l'API di Caricamento Crashes.
Uso di Breakpad con App Center
Il breakpad è una libreria e una suite di strumenti che consente di produrre analisi dello stack C e C++. Queste tracce dello stack vengono generate dai minidump file generati dopo l'integrazione del breakpad con il progetto.
Il breakpad offre guide di base per l'integrazione con applicazioni Linux, Windows e Mac .
Invio dei log di arresto anomalo di Breakpad ad App Center
Android NDK
App Center offre un'integrazione DELL'SDK per le applicazioni Android usando NDK per eseguire codice non gestito. Questa integrazione creerà Minidump Breakpad e li caricherà automaticamente su App Center per te.
Altre applicazioni
Una volta integrato il Breakpad con l'applicazione, è possibile caricare i log di arresto anomalo del breakpad e i minidump in App Center.
Simbolizzazione di crash non gestiti
Generazione del payload dei simboli di Breakpad
La diagnostica di App Center richiede simboli per generare una traccia dello stack leggibile da un minidump Breakpad.
L'archivio dei simboli caricati deve contenere file .sym, prodotti tramite lo strumento Breakpad dump_syms, oppure file binari .so.
Generare un file .zip da caricare
È possibile recuperare i simboli necessari per la simbolica in App Center in due modi. App Center può generarli dai file binari nativi usati nel progetto oppure caricare direttamente i simboli del Breakpad.
Opzione 1: Caricare file binari nativi
Inserire tutti i file .so dalla directory del obj/local/$ABI/ progetto in un file .zip.
Opzione 2: Caricare i simboli del Breakpad
- Effettua il dump dei simboli usando la toolchain Breakpad come descritto nella documentazione del Breakpad nella sezione "Ottenimento dei simboli di debug".
- Creare un filesymbols.zip con la struttura seguente:
Annotazioni
Se si caricano i simboli da macOS, è necessario pulire i simboli di qualsiasi cartella estranea, ad esempio __MACOS viene generato e per eliminare questo è possibile usare zip -d <symbols.zip> __MACOSX/\*.
$ unzip -l symbols.zip
Archive: symbols.zip
Length Date Time Name
-------- ---- ---- ----
0 07-22-13 15:07 symbols/
0 07-22-13 15:07 symbols/libnative.so/
0 07-22-13 15:07 symbols/libnative.so/EAC901FB6DDCCE8AED89E1A8E4A58360/
12468 07-22-13 15:07 symbols/libnative.so/EAC901FB6DDCCE8AED89E1A8E4A58360/libnative.so.sym
0 07-22-13 15:07 symbols/libnative.so/FDC5C9E715C4F16408C0B78F95855BF0/
12467 07-22-13 15:07 symbols/libnative.so/FDC5C9E715C4F16408C0B78F95855BF0/libnative.so.sym
-------- -------
24935 6 files
Caricamento di simboli in App Center
I simboli possono essere caricati tramite il portale, l'API o l'interfaccia della riga di comando di App Center.
- Accedere ad App Center e selezionare l'app.
- Nel menu a sinistra passare alla sezione Diagnostica e selezionare Simboli.
- Nell'angolo superiore destro fare clic su Carica simboli e caricare il file.
- Dopo che i simboli vengono indicizzati da App Center, gli arresti anomali verranno simbolicati automaticamente.
Il processo di caricamento dei simboli tramite l'API prevede una serie di tre chiamate API: una per allocare spazio nel back-end, una per caricare il file e una per aggiornare lo stato del caricamento. Il corpo della prima chiamata API deve essere impostato su symbol_typeBreakpad.
- Attivare una
POSTrichiesta all'API di symbol_uploads. Questa chiamata alloca spazio nel backend per il tuo file e restituisce una proprietàsymbol_upload_ideupload_url.
curl -X POST 'https://api.appcenter.ms/v0.1/apps/{owner_name}/{app_name}/symbol_uploads' \
-H 'accept: application/json' \
-H 'X-API-Token: {API TOKEN}' \
-H 'Content-Type: application/json' \
-d '{JSON BODY}'
- Usando la
upload_urlproprietà restituita dal primo passaggio, effettuare unaPUTrichiesta con l'intestazione:"x-ms-blob-type: BlockBlob"e fornire il percorso del file su disco. Questa chiamata carica il file negli account di archiviazione back-end. Scopri di più sulle intestazioni della richiesta PUT Blob .
curl -X PUT '{upload_url}' \
-H 'x-ms-blob-type: BlockBlob' \
--upload-file '{path to file}'
- Effettuare una richiesta all'API
PATCHutilizzando la proprietà restituita dal primo passaggio. Nel corpo della richiesta specificare se si desidera impostare lo stato del caricamentocommittedsu (completato correttamente) il processo di caricamento oaborted(completato senza esito positivo).
curl -X PATCH 'https://api.appcenter.ms/v0.1/apps/{owner_name}/{app_name}/symbol_uploads/{symbol_upload_id}' \
-H 'accept: application/json' \
-H 'X-API-Token: {API TOKEN}' \
-H 'Content-Type: application/json' \
-d '{ "status": "committed" }'
Annotazioni
L'API di caricamento dei simboli non funziona per i file di dimensioni superiori a 256 MB. Usare l'interfaccia della riga di comando di App Center per caricare questi file. È possibile installare App Center CLI seguendo le istruzioni nel repository di App Center CLI.
Ignorare i simboli
Quando App Center non dispone di tutti i file di simboli per rendere completamente simbolizzati i report di arresto anomalo, gli arresti anomali vengono elencati nella scheda Non simbolizzati. I simboli necessari vengono caricati da questa pagina se vi si può accedere.
Se non è possibile caricare i simboli, è possibile contrassegnarli come Ignorati selezionando le righe nella tabella e facendo clic sul pulsante Ignora versioni . Questo pulsante indica ad App Center di elaborare gli arresti anomali e di simbolizzarli il più possibile con i simboli disponibili. Al termine dell'elaborazione, verranno visualizzati nella scheda Arresti parzialmente simbolizzati. I nuovi arresti anomali che dipendono anche da quegli stessi ID simbolo contrassegnati come ignorati bypasseranno la scheda Non simbolicati mentre arrivano e passano attraverso il sistema.