Video: Debugging 2024
Hver applikasjon i IOS består av en eller flere tråder , som hver representerer en enkelt utførelsesbane gjennom programmets kode. Hver applikasjon starter med en enkelt tråd, som kjører applikasjonens hovedfunksjon.
Hovedtråden omfatter applikasjonens hovedløpsløype, og det er der NSApplication-objektet mottar hendelser. Programmer kan legge til (gyte) flere tråder, som hver utfører koden til en bestemt metode.
Hvis du velger et element i Xcode 4s Debug-navigator, får du informasjon om elementet som skal vises i Kilde-editoren. Hvis du for eksempel velger en metode, vises kildekoden for den funksjonen i Kilde-editoren.
Tråder i seg selv er langt utover omfanget av denne artikkelen, men det er greit: Her er du bare opptatt av hovedtråden.
Hver gang du sender en melding (eller foretar et funksjonsanrop), lagrer feilsøkeren informasjon om det i en stabellramme , og lagrer deretter alle slike rammer i kallestakken.
Når du blir kastet inn i feilsøkingsprogrammet på grunn av en feil (eller hvis du stopper programmet ved å klikke på Pause-knappen på verktøylinjen), viser Xcode trådlisten, og i hver tråd blir anropet Stack for den tråden, og sett det siste samtalen øverst. Samtalestakken viser et spor av objekter og metoder som fikk deg til hvor du er nå.
Selv om sporet ikke er egentlig alt som er nyttig i denne spesifikke konteksten, kan det være veldig nyttig i en mer kompleks applikasjon - det kan hjelpe deg å forstå banen du tok for å komme dit du er. Å se hvordan et objekt sendte en melding til et annet objekt - som sendte en melding til et tredje objekt - kan være veldig nyttig, spesielt hvis du ikke hadde forventet at programmengden skulle virke på den måten.
Å se på anropsstakken kan også være nyttig hvis du prøver å forstå hvordan rammen gjør jobben sin, og i hvilken rekkefølge meldinger sendes. Som du snart ser, kan du stoppe utførelsen av programmet ditt ved et bruddpunkt og spore meldingene sendt opp til det punktet.