Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
prog:lazarus:debug:heaptrc [05/04/2020 14:32]
thierry [Résultat]
prog:lazarus:debug:heaptrc [05/04/2020 14:41] (Version actuelle)
thierry [HeapTrc]
Ligne 1: Ligne 1:
 ====== HeapTrc et gestion de la mémoire ====== ====== HeapTrc et gestion de la mémoire ======
 HeapTrc permet de détecter des éventuelles "​fuites"​ de mémoire lors du débuggage. HeapTrc permet de détecter des éventuelles "​fuites"​ de mémoire lors du débuggage.
-====== HeapTrc ​======+===== HeapTrc =====
  
 ==== Activation===== ==== Activation=====
Ligne 10: Ligne 10:
 {{:​prog:​lazarus:​debug:​heaptrc1.png|}} {{:​prog:​lazarus:​debug:​heaptrc1.png|}}
 ''​O unfreed memory blocks : 0''​ = OK tout va bien ! ''​O unfreed memory blocks : 0''​ = OK tout va bien !
-===== Améliorations ​===== +==== Améliorations ==== 
-===Afficher que si il y a des erreurs ​====+=== N'Afficher que si il y a des erreurs ===
  
 Si vous ne voulez pas voir la fenêtre de sortie quand tout va bien, juste quand il y a des erreurs, il vous faudra mettre ce bout de code dans le fichier ''​.lpr''​ de votre projet Si vous ne voulez pas voir la fenêtre de sortie quand tout va bien, juste quand il y a des erreurs, il vous faudra mettre ce bout de code dans le fichier ''​.lpr''​ de votre projet
Ligne 48: Ligne 48:
 end.                  end.                 
 </​code>​ </​code>​
 +===== THeapStatus =====
 +THeapStatus sert a récuperer les infos sur la mémoire utilisée par le programme
 +==== Déclaration ====
 +dans l'​unité (???)  heaph.inc
 +<code delphi>
 +  THeapStatus = record
 +    TotalAddrSpace:​ Cardinal;
 +    TotalUncommitted:​ Cardinal;
 +    TotalCommitted:​ Cardinal;
 +    TotalAllocated:​ Cardinal;
 +    TotalFree: Cardinal;
 +    FreeSmall: Cardinal;
 +    FreeBig: Cardinal;
 +    Unused: Cardinal;
 +    Overhead: Cardinal;
 +    HeapErrorCode:​ Cardinal;
 +  end;
 +</​code>​
 +==== Utilisation ====
 +
 +<code delphi>
 +Var 
 +  FHeap: ​   THeapStatus; ​
 +  ​
 +procedure TForm1.WriteHeapStatus;​
 +begin
 +   FHeap := GetHeapStatus;​ // A appeler à chaque fois que l'on veut lire les données
 +   ​writeln(format('​TotalAllocated:​%d (%d)', [FHeap.TotalAllocated,​ FHeap.TotalAllocated - FLastAllocated]));​
 +   ​writeln(format('​TotalFree:​%d (%d)', [FHeap.TotalFree,​ FHeap.TotalFree - FLastFree]));​
 +   ​FLastFree ​     := FHeap.TotalFree;​
 +   ​FLastAllocated := FHeap.TotalAllocated;​
 +end;
 +
 +</​code>​
 +
 +
 ===== Voir aussi ===== ===== Voir aussi =====
 +
   * [[https://​wiki.freepascal.org/​heaptrc]]   * [[https://​wiki.freepascal.org/​heaptrc]]
   * [[https://​wiki.freepascal.org/​leakview]]   * [[https://​wiki.freepascal.org/​leakview]]