Come collegare il debugger all'app iOS dopo l'avvio?


101

Ho un problema che sto risolvendo e che si verifica molto raramente e non sembra accadere quando ho cose in esecuzione con Xcode.

È possibile eseguire un'app normalmente (ovvero da Springboard) fino a quando non si verifica il problema, quindi collegare un debugger a quel punto?

Preferirei farlo senza jailbreak, se possibile.

Risposte:


124
  • Collega il tuo dispositivo connesso al tuo Mac
  • Debug> Collega al processo tramite PID o nome
  • Nella finestra di dialogo, inserisci il nome della tua app come appare nel navigatore di debug quando viene avviata tramite Xcode.

Se l'app è già in esecuzione, il debugger si collegherà al processo in esecuzione. Se non è in esecuzione, attenderà l'avvio dell'app e quindi si collegherà.


Ole, grazie per la risposta. Stavo cercando un modo per farlo. Quando vado ad allegare il debugger, sembra che si allega, ma poi ricevo questo messaggio: avviso: impossibile leggere i simboli per / var / mobile / Applications / {GUID} / {APPNAME} .app / {APPNAME} (file non trovato). Quando premo il pulsante "stop" in XCode, l'app si chiude. Sembra che non stia trovando i simboli di debug, sebbene sia stato creato in modalità di debug. Qualche idea?
Brian

4
Ho un problema con il Se non è in esecuzione, attenderà l'avvio dell'app e quindi si collegherà. parte. Non funziona. Uso il nome del processo per attendere la chiamata dell'app. Avvio l'app sull'iPhone, ma il debugger non si rende mai conto che l'app è stata avviata.
Jonny

1
@BrianV - devi assicurarti di compilare con -ggdb se vuoi essere in grado di collegarti al processo.
itfische

4
Sono d'accordo con Jonny; la mia esperienza è che il collegamento funziona sul simulatore, ma non si collega al dispositivo reale.
James Moore

4
NOTA: In Xcode 5.0.1+ è Debug > Attach to Process > By Process Identifier (PID) or Name stackoverflow.com/a/20193088/175830
Jason Axelson

117

Lo lascio qui poiché nessuna delle altre 2 risposte mi ha fornito abbastanza dettagli senza un po 'di fatica.

  1. Esegui la tua app nel simulatore e prendi nota del nome nel navigatore di debug inserisci qui la descrizione dell'immagine

  2. Collega il tuo dispositivo e non dimenticare di selezionare il tuo dispositivo come destinazione inserisci qui la descrizione dell'immagine

  3. Debug> Collega al processo> Per identificatore di processo (PID) o nome inserisci qui la descrizione dell'immagine
  4. Immettere il nome dal passaggio 1 e allegare. Dovrebbe essere tutto quello che devi fare. inserisci qui la descrizione dell'immagine

8
Dovresti avere 1000 voti positivi. Il debug di cose che iniziano tramite uno schema di URL personalizzato può essere un rompicoglioni senza questo trucco accurato. Grazie molto!
txulu

2
Vorrei aver visto questa risposta prima di aver impiegato 20 minuti per
capirlo da

7
Funziona in quanto si collega al processo, ma non riesco a vedere alcun output di registro che è ciò di cui ho veramente bisogno. Qualche idea?
Orlando

2
@Orlando - Se stai cercando l'output del log, consiglio vivamente DeviceConsole: github.com/rpetrich/deviceconsole
orion elenzil

1
Ho fatto esattamente come mi hai suggerito. e ottengo un errore: Could not attach to PIDho provato sia il nome che il suo ID. Ho provato mentre l'app è in esecuzione e mentre è ferma ..
Miele

49

In Xcode 5.0.1 e 6 sono gli elementi della barra dei menu:

Debug > Attach to Process > By Process Identifier (PID) or Name...

7

In Xcode 7 è solo:

Debug > Attach to Process by PID or Name...
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.