Cum să găsiți și să remediați erorile din Software-ul comercial pe Windows
potrivit Wikipedia, „un bug software este o eroare, defect, eșec sau defecțiune într-un program sau sistem de computer care îl determină să producă un rezultat incorect sau neașteptat sau să se comporte în moduri neintenționate, în cele din urmă prăbușind aplicația. Procesul de remediere a erorilor este denumit” depanare ” și folosește adesea tehnici sau instrumente formale pentru a identifica erorile .”
cele mai multe ori bug-uri pot fi reproduse într-un mediu dezvoltator și fixe înainte de a trimite o versiune de producție. Dar, uneori, bug—urile depind de mediul sau profilul special al utilizatorilor—de exemplu, folosind caractere speciale într-un nume de folder-ceea ce face mai greu de înțeles cauza principală a unui bug. Cele mai grave bug-uri vor necesita asistență pentru utilizator pentru a configura o sesiune screenshare pentru a viziona un utilizator reproducând o eroare.
la Dashlane, echipa Windows folosește mai multe instrumente pentru a găsi și reproduce erori:
- jurnalele tehnice la fața locului în cazul în care apar probleme și de a ajuta le repara, uneori, care necesită mai multe iterații și interacțiunea cu utilizatorul se confruntă cu o problemă
- Microsoft Process Monitor și Process Explorer, două instrumente gratuite care indica instalări rău sau un mediu corupt
recent, Microsoft a introdus o nouă versiune a unui alt instrument de dezvoltator, WinDbg. Această aplicație a fost portat într-o aplicație UWP, este disponibil gratuit pe Microsoft Store, și vine cu o caracteristică foarte frumos și util: TTD, sau depanare călătorie în timp. Gândiți-vă la un moment în care a trebuit să remediați un bug foarte greu de reprodus, care se întâmpla doar pe o anumită mașină. Sau gândiți—vă la timpul petrecut instalând un mediu pentru dezvoltatori pe acea mașină-dacă ați putea. Și apoi gândiți-vă de câte ori a trebuit să lansați aplicația în modul de depanare pentru a reproduce eroarea și apoi ați ratat linia coruptă lovind accidental F5 în loc de F11. TTD transformă acest lucru într-o bucată de tort, deoarece trebuie doar să înregistrați eroarea o singură dată pentru a vă permite să o redați din nou și din nou, atât înainte, cât și înapoi.
depanare călătorie în timp cu WinDbg
TTD este o soluție de depanare inversă. Se compune din 3 pași:
- înregistrați aplicația sau procesul pe mașină care poate reproduce eroarea. Utilizați WinDbg cu drepturi de administrator și lansați un executabil sau atașați-l la unul care rulează deja pentru a înregistra urmărirea acestuia. Rezultatul este un fișier (.run extension) care conține toate informațiile pentru a reproduce bug-ul. Din acest motiv, la Dashlane îl putem folosi doar pentru a depana Erorile care se întâmplă înainte de conectare, pentru a nu colecta informațiile sensibile ale utilizatorilor.
- reluați urmărirea înregistrată înainte și înapoi de câte ori este necesar pentru a înțelege problema. Odată încărcat, WinDbg creează un index al urmei, care oferă căutare completă și rapidă a memoriei. Fișierul înregistrat poate fi încărcat pe orice mașină; de obicei, deschidem pe o mașină de dezvoltator, unde putem încărca codul sursă și simbolurile PDB. În acest fel, putem reda urmărirea pe măsură ce rulăm cod în IDE-ul nostru cu înregistrări de proces și memorie de la mașina înregistrată. (Asigurați-vă că codul sursă și simbolurile se potrivesc cu versiunea procesului înregistrat.)
- analizați adăugând puncte de întrerupere, executați interogări pentru a identifica problemele comune de cod și obțineți acces complet la memorie și localnici pentru a înțelege ce se întâmplă.
exemplu
să presupunem că ați scris și construit o aplicație simplă consolă.
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;
}
să presupunem aplicația construită (TestTTD.exe) și fișierul simbol (TestTTD.pdb) sunt în C:\TestTTD\bin, iar codul sursă este în C:\TestTTD\src.
înregistrați
- deschideți WinDbg cu drepturi ridicate.
- în fila Fișier, alegeți lansați executabilul (avansat). În câmpul executabil, introduceți C:\TestTTD\TestTTD.exe. Verificați procesul de înregistrare cu depanarea călătoriei în timp, setați directorul de ieșire la o cale care poate fi scrisă și existentă, apoi faceți clic pe OK.
- pe măsură ce aplicația se blochează, WinDbg salvează un fișier de urmărire (.rulați extensia) și înregistrează locația în timp ce o încărcați.
- opriți depanatorul și deschideți locația fișierului de urmărire.
Replay
- Deschide WinDbg.
- în fila Fișier, selectați Setări din bara laterală din stânga. Selectați setările de depanare, adăugați C:\TestTTD\src la câmpul cale sursă și C:\TestTTD\bin la câmpul cale simbol. Faceți clic pe OK pentru a salva modificările.
- în fila Fișier, selectați Deschidere fișier urmărire și răsfoiți la fișierul urmărire creat la Pasul înregistrare.
analizați
- odată ce fișierul de urmărire înregistrat este încărcat în WinDbg, adăugați un punct de întrerupere pentru a opri și analiza starea aplicației. Încărcați un fișier script din fila Sursă, apoi faceți clic pe partea stângă a rândului punctului de întrerupere dorit. Hit F5 pentru a rula la punctul de întrerupere.
- acum a lovit F10 să-și intensifice peste, ca într-o sesiune de depanare Visual Studio. Faceți clic pe pas peste spate pentru a rula înapoi.
concluzii
când depanați codul de producție și erorile greu reproductibile, WinDbg și depanarea călătoriei în timp sunt un instrument excelent pentru dezvoltatori care pot ajuta la economisirea timpului și a resurselor prin înregistrarea aplicației defecte doar pe mediul afectat și oferindu-vă posibilitatea de a o reda oriunde. Pentru mai multe informații, vizitați blogul Microsoft sau urmăriți demo-ul lor pe site-ul MSDN Channel 9.