Figer et libérer des threads dans le débogueur

De Appmethod Topics
Aller à : navigation, rechercher

Votre application à thread nécessite d'être arrêtée dans le débogueur avant que vous ne puissiez figer et libérer des threads individuels. Vous pouvez arrêter l'application de plusieurs façons, notamment la suivante :

  • Définissez des points d'arrêt, puis choisissez Exécuter > Exécuter ou Exécuter > Pas à pas.
  • Appuyez sur le bouton Pause PauseButton.png sur l'EDI lors de l'exécution de l'application.
  • L'exception qui se produit arrête l'application.

Pour figer un thread dans le débogueur

  1. Ouvrez la fenêtre Threads en sélectionnant Voir > Fenêtres de débogage > Threads.
  2. Dans la fenêtre Threads, cliquez avec le bouton droit sur le thread à geler.
  3. Dans le menu contextuel, sélectionnez la commande qui s'applique à votre situation :
    • Figer - fige le thread sélectionné
    • Figer tous les autres threads - fige tous les autres threads, mais pas le thread sélectionné

Pour libérer un thread dans le débogueur

  1. Ouvrez la fenêtre Etat des threads en sélectionnant Voir > Fenêtres de débogage > Threads.
  2. Dans la fenêtre Threads, cliquez avec le bouton droit sur le thread gelé que vous voulez libérer. L'état doit être Gelé.
  3. Dans le menu contextuel, sélectionnez la commande qui s'applique à votre situation :
    • Libérer - libère le thread sélectionné
    • Libérer tous les threads - libère tous les threads, y compris le thread sélectionné

Pour figer et libérer les threads en utilisant le projet exemple THRDDEMO

Le projet thrddemo contient trois threads nommés (TBubbleSort, TQuickSort et TSelectionSort).

  1. Cliquez sur Démarrer | Programmes | Appmethod 1.14 | Exemples et naviguez vers l'exemple \Object Pascal\RTL\Threads\thrddemo.dproj.
  2. Dans le gestionnaire de projets, ouvrez le fichier SortThds.pas.
  3. Dans l'éditeur de code, recherchez (Ctrl+F) la ligne de code suivante :
    Sort(Slice(FSortArray^, FSize));
  4. Cliquez dans la gouttière grise pour définir un point d'arrêt (Breakpoint.bmp) sur cette ligne de code.
  5. Appuyez sur F9 ou choisissez Exécuter > Exécuter pour exécuter le programme.
  6. Dans la fenêtre Thread Sorting Demo, cliquez sur Start Sorting. Le traitement s'arrête à la ligne contenant le point d'arrêt.
  7. Ouvrez la fenêtre Etat des threads avec Voir > Fenêtres de débogage > Threads ou Ctrl+Alt+T.
  8. Notez que le thread nommé TBubbleSort est à l'état Arrêté avec le statut défini sur PointArrêt.
  9. Appuyez de nouveau sur F9, et notez que le thread TQuickSort a été créé et qu'il est dans le même état que TBubbleSort.
  10. Appuyez de nouveau sur F9, et notez que le thread TSelectionSort a été créé et qu'il est dans le même état que les deux autres threads.

Vous pouvez maintenant figer un des threads et exécuter les autres threads pour expérimenter l'opération geler. Dès qu'un thread a été gelé, vous pouvez le libérer.

Voir aussi