Cum în Delphi găsiți ultima linie a codului, în care a existat o depășire a stivei de excepție

În unele cazuri, când apar erori, în timpul depanării, compilatorul afișează linia bibliotecilor delphi unde a apărut excepția. De exemplu, accesând un indice inexistent al matricelor și al altor containere, cum ar fi:







Primim instrucțiunea pe o linie: Eroare (@SListIndexError, Index); în sistem

În cazul proiectelor cu mai multe filete mari, atingerea unor astfel de erori prin trasare este extrem de dificilă, scrierea în jos a jurnalului după fiecare linie nu este, de asemenea, o opțiune. Și aș vrea să cunosc linia proiectului meu de unde a început totul. Cum pot găsi șirul în modul de depanare?

de la 28 martie la 21:02

Pentru a afla de unde a apărut eroarea, trebuie să te uiți la stiva apelurilor (de asemenea, Call Stack). În modul de depanare în IDE, acest stiva este întotdeauna disponibilă și "ultima linie a codului" este determinată elementar. Mai mult, în momentul excluderii într-o aplicație multi-filetată, puteți vedea în ce loc anume este localizat fiecare fir și cum a ajuns acesta în acest loc. Dacă sunteți interesat să obțineți un stiva nu de la un debugger. și având doar pe exe compilate. apoi instrumentele de mai sus vin la salvare (EurekaLog, MadExcept, etc.). - zed Mar 29, la 6:30 dimineața







@HeathRow este, desigur, gol, va începe să "funcționeze" când aplicația se oprește la un moment dat. Deoarece, înainte ca aplicația să fie pusă într-o pauză, nu există niciun sens în ferestrele de depanare - în paralel există mai multe fire care rulează, fiecare având propriul Callstack activ. Starea de apel în sine va afișa secvența de apeluri a firului curent ca urmare a punctului de întrerupere, F4, apariția unei excepții. Trecerea între fire cu fiecare dintre ele afișând o stivă - prin fereastra Status Thread - kami Mar 29 la 9:00







Trimiteți-le prietenilor: