Difference between revisions of "IDE Window: Breakpoints/fr"

From Lazarus wiki
Jump to navigationJump to search
Line 24: Line 24:
 
=== Données affichées ===
 
=== Données affichées ===
  
;State: A breakpoint can be enabled or disabled. If it is enabled, then each time the program reaches the breakpoint, the condition is checked and if results true, the action(s) set for the breakpoint will be performed.
+
;Etat: Un point d'arrêt peut être actif ou inactif. S'il est actif, alors à chaque fois que le programme l'atteindra, la condition est contrôlée et si elle est vérifiée, l'(es) action(s) définie(s) our le point d'arrêt seront réalisées.
 
+
;Nom de fichier/Adresse<br>Ligne/Longueur:
;Filename/Address<br>Line/Length: Depending on the type of the breakpoint the following is displayed:
+
:*<u>Point d'arrêt source:</u><br>Nom de fichier/Adresse: Nom du fichier dans lequel le point d'arrêt est défini.<br> Ligne/Longueur: Le numéro de ligne où il est défini.
:*<u>Source Breakpoint:</u><br>Filename/Address: The name of the file where the breakpoint is set.<br> Line/Length: The line-number where the breakpoint is set.
+
:*<u>Point d'arrêt adresse:</u><br>Nom de fichier/Adresse: Adresse du point d'arrêt. Ce type de point d'arrêt est utile s'il n'y apas de source disponible. <br> Ligne/Longueur: Ceci est vide.
:*<u>Address Breakpoint:</u><br>Filename/Address The address of the breakpoint. This type of breakpoint is useful if there is no source available. <br> Line/Length: This is empty
+
:*<u>Point d'arrêt donnée:</u><br>Nom de fichier/Adresse: Le nom de la variable. <br> Ligne/Longueur: Montrera la portée ("Global" / "Declaration") et le mode ("Read" / "Write" / "Read/Write")
:*<u>Data Breakpoint:</u><br>Filename/Address: The name of the variable. <br> Line/Length: Will show the scope ("Global" / "Declaration") and the mode ("Read" / "Write" / "Read/Write")
+
;Condition: Normalement, un point d'arrêt atteint exécute la ou les actions d'arrêt. Lorsqu'une condition est définie, cette condition est évaluée. Si cette condition prend la valeur True, la ou les actions d'interruption sont exécutées.
 
+
;Action: Les actions suivantes sont disponibles : Pause, Activer/Désactiver le(s) groupe(s), Évaluer l'expression, Message du journal, Enregistrer la pile d'appel, Prendre un instantané. Une description complète de ces actions peut être trouvée sur la page [[IDE Window:Breakpoint properties/fr|Propriétés de point d'arrêt]].
;Condition: Normally a reached breakpoint performs the break action(s). When a condition is defined, this condition is evaluated. If this condition evaluates to True, the break action(s) are performed.
+
;Nombre d'accès: Combien de fois le point d'arrêt activé a été atteint. Si un "Hitcount" est défini pour ce point d'arrêt, le débogueur effectuera la ou les actions d'arrêt lorsque le hitcount sera atteint.
 
+
;Groupe: Le groupe auquel appartient le point d'arrêt. Cela permet d'activer/désactiver rapidement plusieurs points d'arrêt en une seule opération.
;Action: The following actions are available: Break, Enable/Disable group(s), Log message, Evaluate expression, Ignore/Handle Exceptions. A complete description of these actions can be found on the [[IDE Window:Breakpoint properties|Breakpoint properties]] page.
 
 
 
;Pass Count: How many times the enabled breakpoint has been reached. If a "Hitcount" is defined for this breakpoint, the debugger will  perform the break action(s) when the hitcount is reached.
 
 
 
;Group: The group where this breakpoint belongs to. This allows to quickly enabled/disable several breakpoints at once.
 
  
 
=== Interface ===
 
=== Interface ===

Revision as of 09:57, 10 April 2022

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

Navigation

Menu Principal > Voir > Fenêtres de débogage > Points d'arrêt

Important

Vous devez configurer le débogueur et démarrer le projet pour le mettre au point. Seulement alors cette fenêtre sera utile.

Liste des points d'arrêt

Breakpoint list.png

Il y a trois 3 sortes de points d'arrêt:

Point d'arrêt source
Spécifié par un nom d'unité et un numéro de ligne. L'exécution sera interrrompue avant que l'instruction Pascal sur la ligne spécifiée ne soit exécutée. Il peut être défini en cliquant sur la gouttière dans l'éditeur de code source.
Point d'arrêt d'adresse
Spécifié par une adresse. L'exécution sera interrompue avant que l'instruction assembleur à l'adresse spécifiée ne soit exécutée. Il peut être défini en cliquant sur la gouttière dans la fenêtre de désassemblage.
Point d'arrêt Donnée/Suivi
Spécifié par un nom de variable. L'exécution sera interrompue quand la variable est changée. Il peut aussi détecter un accès en lecture, selon la plateforme utilisée.

Light bulb  Remarque: A propos des données/Suivi de points d'arrêt:

En définissant le point d'arrêt Donnée/Suivi, la variable, qui doit être suivie, doit être dans la portée. (c'est-à-dire que le programme doit être en cours d'exécution et arrêté à un point d'arrêt où la variable peut être vue).
Pour cette raison, les points d'arrêt Donnée/Suivi ne sont valides que jusqu'à la fermeture de l'application, puis seront désactivés. Au prochain débogage, ils doivent être réactivés lorsqu'ils sont arrêtés à un emplacement où ils sont dans la portée.

Données affichées

Etat
Un point d'arrêt peut être actif ou inactif. S'il est actif, alors à chaque fois que le programme l'atteindra, la condition est contrôlée et si elle est vérifiée, l'(es) action(s) définie(s) our le point d'arrêt seront réalisées.
Nom de fichier/Adresse
Ligne/Longueur:
  • Point d'arrêt source:
    Nom de fichier/Adresse: Nom du fichier dans lequel le point d'arrêt est défini.
    Ligne/Longueur: Le numéro de ligne où il est défini.
  • Point d'arrêt adresse:
    Nom de fichier/Adresse: Adresse du point d'arrêt. Ce type de point d'arrêt est utile s'il n'y apas de source disponible.
    Ligne/Longueur: Ceci est vide.
  • Point d'arrêt donnée:
    Nom de fichier/Adresse: Le nom de la variable.
    Ligne/Longueur: Montrera la portée ("Global" / "Declaration") et le mode ("Read" / "Write" / "Read/Write")
Condition
Normalement, un point d'arrêt atteint exécute la ou les actions d'arrêt. Lorsqu'une condition est définie, cette condition est évaluée. Si cette condition prend la valeur True, la ou les actions d'interruption sont exécutées.
Action
Les actions suivantes sont disponibles : Pause, Activer/Désactiver le(s) groupe(s), Évaluer l'expression, Message du journal, Enregistrer la pile d'appel, Prendre un instantané. Une description complète de ces actions peut être trouvée sur la page Propriétés de point d'arrêt.
Nombre d'accès
Combien de fois le point d'arrêt activé a été atteint. Si un "Hitcount" est défini pour ce point d'arrêt, le débogueur effectuera la ou les actions d'arrêt lorsque le hitcount sera atteint.
Groupe
Le groupe auquel appartient le point d'arrêt. Cela permet d'activer/désactiver rapidement plusieurs points d'arrêt en une seule opération.

Interface

Toolbar

debugger enable.png Enable/debugger disable.png Disable
Enables/Disables individual breakpoint(s).
laz delete.png Remove
Deletes the selected Breakpoint(s)
debugger enable all.png Enable all/debugger disable all.png Disable all
Enables/Disables all breakpoints.
menu clean.png Delete all
Deletes all Breakpoints
menu environment options.png Properties
Change the properties of the current/selected breakpoint.

Context menu

Breakpoint list popmenu.png
View Source
Jump to the source. (Only Source-Breakpoints)
Add
Opens a property dialog for the requested type of breakpoint. The location/address/variable can be set in the property dialog.
Enabled
Toggle the enabled state for individual breakpoint(s)
Delete
Deletes the selected Breakpoint(s)
Group
Clears or sets the group for the breakpoint. A list of existing groups will be in the menu. With "Set new group" a new group can be created.
Enable all/Disable all
Enables/Disables all breakpoints.
Delete all
Deletes all Breakpoints
Disable all in same source/Enable all in same source
Enables/Disables all breakpoints in the same unit as the current selected breakpoint. (Only Source-Breakpoints)
Delete all in same source
Deletes all Breakpoints in the same unit as the current selected breakpoint. (Only Source-Breakpoints)

Propriétés de point d'arrêt

BreakPoint Properties.png

Filename/Line
Location of the breakpoint
Condition
The breakpoint will only be triggered and perform the specified actions, if the condition evaluates to true. This can for example be used to test if a variable has reached a critical value.
Currently only very basic expressions are allowed. (GDB must be able to understand the expression)
NOTE #1: The IDE does only apply a very limited pascal syntax fixing to the condition (#48 is escaped as char with ord val 48), so it needs to be C-like, so GDB understands the expression. eg: "i=2" or somechar='a'. Remember that the string (or rather char) value must be wrapper in single quotes, not double quotes.
NOTE #2: Strings can not be compared. They are seen as pchar, so they can only be compared to an address: "str=0x5a0b40". Chars in a string can be compared (index is zero based/pchar) "(s[0]='a')and(s[1]='b')". And strings can be compared as PChar (zero terminated): $_streq(^char(MyString), "ValueToCompare") (with double quotes) See: https://sourceware.org/gdb/current/onlinedocs/gdb/Convenience-Funs.html#Convenience-Funs
HitCount
The breakpoint will be ignored until it has been hit the specified amount of times. One scenario where this is useful, if an event is triggered by the focus change (between IDE and debugged app) when the app is paused/resumed. The ignored passes of the breakpoint to not alter the focus.
NOTE: #1 The hitcount starts at 0. So if you want to break on the 10th iteration, set the HitCount to 9.
NOTE: #2 The hit count doesn't reset until you stop/start the debugging or actually delete the breakpoint and set it again (without the need to stop/start the debug session).
Auto continue after
This also avoids the focus change between IDE and app. It however indicates the execution line in the source editor, which leads to a visible indication. If the time is long enough watches might be evaluated.
Group
A breakpoint can be is one group (one only). Groups can be used with the Enable/Disable group feature.
Actions
  • Break: Pause the application. The application can be continued with the Run command or any of the stepping commands
  • Enable/Disable Group: Enable or Disable all breakpoints in the given group(s). Usually 2 breakpoints would be set, one to enable, the other to disable. The breakpoints in the specified groups could then be enabled (or disabled) only, if they occur between the 2 points. The breakpoints that are changed could be in subroutines, that are called sometimes between the 2 points, but also from other locations.
  • Eval Expression: Evaluates the expression and writes the value to the debug event log
  • Log Message: Writes the message to the debug event log
  • Log Callstack: Writes the callstack to the debug event log
  • Take a snapshot: Evaluates all Watches, Locals, Callstack, Threads, and adds it to the snapshots in the History dialog.