IDE Window: Call Stack/fr

From Free Pascal wiki
Jump to navigationJump to search

Deutsch (de) English (en) français (fr) русский (ru)

Important

Vous devez paramétrer le débogueur et lancer le projet pour le déboguer. Seulement alors la pile d'appel est utile . L'écran de sortie montré sur cette page est basé sur le débogueur GNU, GDB et peut ressembler à du C. D'autres débogueurs peuvent avoir un style qui se rapproche plus du Pascal . Actuellement, le seul débogueur supporté est GDB.

Boite de dialogue

PileAppel.png

Qu'est ce que la pile d'appel?

La pile d'appel est la pile des appels de fonction.La ligne supérieure est la fonction en cours, la plus basse ligne est le programme principal .

Source

C'est le nom de fichier de la source. Cette information est recherchée à partir de l'information de déboguage contenu dans l'exécutable. Seules ces parties du programme compilées avec l'information du deboggueur, contiennent une telle information .

Ligne

Si la position contient l'information de débogage, La ligne du code source sera montrée, autrement seulement un pointeur d'adresse dans l'exécutable est montré. Cette ligne est l'endroit où la prochaine fonction est appelée .

Note: La ligne est la ligne au moment de la compilation. Si vous insérez/effacez des lignes, les informations ne seront plus précises.

Fonction

Le nom mutilé de la procedure/fonction. Le compilateur convertit les identificateurs pascal en noms, utilisables par les outils gnu. Par exemple :

 TAPPLICATION__CREATEFORM(0x81fb738, void, (^TAPPLICATION) 0xb7cd0014)

Ceci signifie :

  • Le nom mutilé de la fonction est TAPPLICATION__CREATEFORM, ce qui est la procédure TApplication.CreateForm de l'unité forms.pp de la bibliothèque LCL. Puisque le Pascal n'est pas sensible à la case et les outils gnu sont sensibles à la case, FPC converts the name to uppercase. Because the gnu tools don't know classes and objects, the class.method is converted to a global function name.
  • Then parameter list depends on the platform and the calling convention. That means the parameter list can be reversed, starting with the rightmost parameter. This is the case in the above example.
  • The 'Self' parameter is implicit. That means, you don't write it in the pascal source, and FPC creates it automatically. This is always the first parameter. Because of the reverse order, it is shown as the last parameter. It is of type ^TAPPLICATION and its hexadecimal value is 0xb7cd0014.
  • The next parameter in pascal is 'var Reference', which has no type. Therefore it is 'void'.
  • The last parameter in pascal is 'InstanceClass: TComponentClass'. The parameter is on gnu level just a pointer and has the hexadecimal value 0x81fb738.

Tricks

Double click on an item to jump to the source.

Popup menu

Callstack popmenu.png

Show

Jump to the source postion of the current item.

Set as current

(not implemented) Set the selected entry as the current frame. Local variables are only known within a frame. By setting the current frame, you can watch the values of variables in the context of the procedure you have selected.

Copy all

Copy the call stack to the clipboard.