Hvordan Finne Og Fikse Feil I Kommersiell Programvare På Windows
Ifølge Wikipedia, «en programvarefeil er en feil, feil, feil eller feil i et dataprogram eller system Som får det til å produsere et feil eller uventet resultat, eller å oppføre seg på utilsiktede måter, og til slutt krasje programmet. Prosessen med å fikse feil kalles «feilsøking» og bruker ofte formelle teknikker eller verktøy for å finne feil .»
Mesteparten av tiden bugs kan gjengis i en utvikler miljø og fast før du sender en versjon til produksjon. Men noen ganger er feil avhengig av brukerens spesielle miljø eller profil—for eksempel ved å bruke spesialtegn i et mappenavn—noe som gjør det vanskeligere å forstå en feils grunnårsak. De verste feilene vil kreve brukerstøtte for å sette opp en screenshare-økt for å se en bruker gjengi en feil.
På Dashlane bruker Windows-teamet flere verktøy for å finne og reprodusere feil:
- Tekniske logger for å oppdage hvor problemer oppstår og bidra til å fikse dem, noen ganger krever flere iterasjoner og samhandling med brukeren som opplever et problem
- Microsoft Process Monitor Og Process Explorer, to gratis verktøy som identifiserer dårlige installasjoner eller et ødelagt miljø
Nylig introduserte Microsoft En ny versjon av Et annet utviklerverktøy, WinDbg. Denne applikasjonen ble portet inn I EN UWP-app, er fritt tilgjengelig På Microsoft Store, og kommer med en veldig fin og nyttig funksjon: TTD, Eller Time Travel Debugging. Tenk på en gang du måtte fikse en veldig vanskelig å reprodusere feil som bare skjedde på en bestemt maskin. Eller tenk på tiden du brukte på å installere et utviklermiljø på den maskinen – hvis du kunne. Og så tenk på hvor mange ganger du måtte starte programmet i feilsøkingsmodus for å reprodusere feilen, og da savnet du den ødelagte linjen ved et uhell å treffe F5 i stedet For F11. TTD gjør dette til et stykke kake, da du bare trenger å registrere feilen en gang for å la deg spille den om og om igjen, både fremover og bakover.
Feilsøking Av Tidsreiser med WinDbg
TTD er en omvendt feilsøkingsløsning. Den består av 3 trinn:
- Ta opp appen eller prosessen på maskinen som kan gjengi feilen. Bruk WinDbg med administratorrettigheter og start en kjørbar, eller legg til en som allerede kjører for å registrere sporingen. Resultatet er en fil (.kjør forlengelse) som inneholder all informasjon for å reprodusere feilen. Av Denne grunn, På Dashlane kan vi bare bruke Den til å feilsøke feil som skjer før innlogging for ikke å samle brukernes sensitive informasjon.
- Spill det innspilte sporet fremover og bakover så mange ganger som nødvendig for å forstå problemet. Når lastet, Skaper WinDbg en indeks av spor, som gir komplett og rask minne oppslag. Den innspilte filen kan lastes på hvilken som helst maskin; vi åpner vanligvis på en utvikler maskin, hvor vi kan laste kildekode og PDB symboler. På denne måten kan vi spille av sporet når vi kjører kode i VÅR IDE med prosess – og minneposter fra den innspilte maskinen. (Kontroller at kildekoden og symbolene samsvarer med den innspilte prosessversjonen.)
- Analyser ved å legge til avbruddspunkter, kjør spørringer for å identifisere vanlige kodeproblemer, og få full tilgang til minne og lokalbefolkningen for å forstå hva som skjer.
Eksempel
Anta at du har skrevet og bygget et enkelt konsollprogram.
void
GuiltyFunction(
int
a,
int
b,
int
c)
{
int
x = a + b + c;
int
y = 0;
y = x / b;
}
int
main()
{
int
a = 10;
int
b = 0;
int
c = 3;
GuiltyFunction(a, b, c);
return
0;
}
La oss anta den innebygde applikasjonen (TestTTD.exe) og symbolfilen (TestTTD.pdb) er i C:\TestTTD\bin kildekoden er i C:\TestTTD\src.
Ta Opp
- Åpne WinDbg med forhøyede rettigheter.
- velg Start kjørbar (avansert) i Kategorien Fil. I Feltet Kjørbar skriver du inn C:\TestTTD\TestTTD.exe. Sjekk Postprosessen med Feilsøking I Tidsreiser, sett Utdatamappen til en skrivbar og eksisterende bane, og klikk DERETTER OK.
- Når programmet krasjer, Lagrer WinDbg en sporingsfil (.kjør forlengelse) og logger plasseringen mens du laster den.
- Stopp feilsøkingsverktøyet, og åpne plasseringen for sporingsfilen.
Replay
- Åpne WinDbg.
- velg Innstillinger fra venstre sidepanel i Kategorien Fil. Velg Feilsøkingsinnstillinger, legg til C:\TestTTD\src Til Kildebane-feltet og C:\TestTTD\bin Til Feltet Symbolbane. Klikk OK for å lagre endringer.
- I Kategorien Fil velger Du Åpne sporingsfil, og bla til sporingsfilen som ble opprettet i Posttrinnet.
Analyser
- når den registrerte sporfilen er lastet inn I WinDbg, legg til et stoppunkt for å stoppe og analysere tilstanden til programmet. Last inn en skriptfil fra Kilde-fanen, og klikk deretter på venstre side av raden til ønsket stoppunkt. Hit F5 for å kjøre til stoppunkt.
- nå treffer F10 å gå over, som I En Visual Studio debugging økt. Klikk På Step Over Back for å kjøre bakover.
Konklusjoner
Når debugging produksjon kode og knapt reproduserbare bugs, WinDbg og Sin Tidsreiser Debug er et flott verktøy for utviklere som kan bidra til å spare tid og ressurser ved å registrere feil program bare på det berørte miljøet og gir deg muligheten til å spille det hvor som helst. Hvis du vil ha Mer informasjon, kan Du gå Til Microsoft blog, eller se demoen deres på msdn Channel 9s nettsted.