Italian community of Lazarus and Free Pascal

Programmazione => Generale => Topic aperto da: xinyiman - Giugno 14, 2020, 02:57:44 pm

Titolo: Profilazione e debug codice
Inserito da: xinyiman - Giugno 14, 2020, 02:57:44 pm
Ciao a tutti, ho scritto due semplici classi da implementare nei miei progetti al momento della realizzazione.

La prima mi permette di usare una funzione per rilasciare dei messaggi nel codice (senza usare il classico writeln che poi andrebbe tolto al momento del rilascio. La sintassi č semplicissima

SmartDebugLog.write('Start Button1Click');   

Se le Custom options:

       -dSmartDebugLogWriteActive //usa writeln
       -dSmartDebugLogActive      //usa file

Quando poi rilascio il programma tolgo le opzioni dalle custom options senza toccare il resto del codice.

La seconda classe serve per effettuare la profilazione del codice. Io quando scrivo i miei nuovi programmi metto il seguente codice in tutte i metodi

Esempio

procedure TForm1.Procedure1();
begin
     SmartCodeProfile.AddItem(Self.UnitName,Self.ClassName,{$I %CURRENTROUTINE%},true);

     //altro codice

     SmartCodeProfile.AddItem(Self.UnitName,Self.ClassName,{$I %CURRENTROUTINE%},false);
end;

Con le Custom options:

       -dSmartCodeProfileActive


Cosė quando eseguo il programma il codice raccoglie informazioni e me le mette a disposizione al termine dell'esecuzione. Sono consapevole che esistono dei pacchetti apposta per la profilazione in lazarus, ma quando servivano a me non erano cosė ben funzionanti e quindi al tempo mi ero costruito questa classe.

Spero possa essere d'aiuto a qualcuno alle prime armi con Lazarus. Allego esempio