Débuguer. Avec quels outils

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
EzBlue
Niveau 1
Niveau 1
Messages : 1
Enregistré le : ven. 09 sept. 2016 14:17
Status : Hors ligne

Débuguer. Avec quels outils

#1

Message par EzBlue »

Bonsoir à tous,
J'aimerai savoir quels sont les options disponibles afin de pouvoir débuguer un script du genre
- ligne par ligne
- entrer dans une fonction
- sortir d'une fonction
- donner la valeur de certaines variables
- etc...
Je fais principalement références à mes expérience avec Visual Studio, qui est naturellement un outil commerciale qui a connu plusieurs itérations, mais je ne semble pas trouver de debugueur, même simple.

En espérant que j'ai simplement manquer de patience et d'aptitude d'exploration et de tels outils existent et fonctionnent très bien. J'attends de vos nouvelles.

Merci de votre aide.
Avatar du membre
walkson
Modérateur
Modérateur
Messages : 1038
Enregistré le : ven. 12 août 2011 19:49
Localisation : Hurepoix
Status : Hors ligne

Re: Débuguer. Avec quels outils

#2

Message par walkson »

Bonjour,
C'est un peu un tutoriel que vous demandez ! :wink:
Je ne suis pas le mieux placé pour vous répondre mais j'aurais essayé
A lire:
https://www.autoitscript.fr/forum/viewtopic.php?t=2811
https://www.autoitscript.fr/forum/viewtopic.php?t=4977
J'ai tenté un résumé (un peu brouillon)

Code : Tout sélectionner

;vérification par Scite CTRL + F5

;ne repond pas à une exigeance
If FileExists(@DesktopDir & "\essai.xlsx") = 0 Then Exit MsgBox(0,"Error","dossier inexistant" )
;Return Value
;Success: 1.
;Failure: 0 if path/file does not exist.

;chaque fonction retourne une valeur d'erreur ex:
FileOpen ( "filename" , 0 )
If @error Then MsgBox(0,"", @error)
;Return Value
;Success: a file "handle" for use with subsequent file functions.
;Failure: -1 if error occurs.
;autre exemple
_SQLite_Startup ("sqlite3.dll")
If @error > 0 Then Exit MsgBox(16, "SQLite Error", "SQLite.dll Can't be Loaded!")
;Return Value
;Returns the "return value" parameter (undefined if the parameter is not used).
;@error and @extended will be set to the values set in the function call (both default = 0)

Local $File = FileOpenDialog('Open csv', @ScriptDir & '\', 'Csv files (*.csv;*.txt)', 1)
If @error Then Exit MsgBox(0,"Error","pas de sélection")
;erreur si file n'existe pas ou Annuler est cliqué

;créer une valeur d'erreur
$sComboRead = GUICtrlRead($idComboBox)
If $sComboRead = "LAP" Then $aa = SetError(1,5,"erreur")
If @error Then MsgBox(0,"", @error &">"& @extended &">"& $aa)

;par vérification des données
If IsArray($array) = 0 Then Exit MsgBox(0,"Error","erreur")
If IsBinary($donne) = 0 Then Exit MsgBox(0,"Error","erreur")
If IsNumber("aaa") = 0 Then Exit MsgBox(0,"Error","erreur")
;etc..........

;sortir d'une fonction avec erreur
Func _funct()
	$value = GUICtrlRead($Nserie)
	If $value = "" Then
		MsgBox(0,"Erreur",'pas de données')
		Return SetError(1);la fonction s'arrête là
	EndIf
	If Not @error Then Return $value ;retour si pas d'erreur
EndFunc

;outils de surveillance
;bloquant
MsgBox(0, "", $mavalue &">"& @ScriptLineNumber);retourne la variable et le N° de ligne du code
_ArrayDisplay($array) ; avec l'include Array.au3
;non bloquant
ConsoleWrite($mavalue &">"& @ScriptLineNumber & @CR)
ToolTip($mavalue &">"& @ScriptLineNumber, 100,100)

;AU3Check
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****

#AutoIt3Wrapper_Run_AU3Check=y ;contôle à la compilation
#AutoIt3Wrapper_AU3Check_Stop_OnWarning=y
#AutoIt3Wrapper_Au3Check_Parameters=-q -d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6 -w 7

#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
Voilà à peu près mes connaissances en matière de gestion d'erreurs. D'autres auront sûrement de meilleurs conseils...
Cordialement,
Walkson
"Horas non numero nisi serenas " Le canon de midi
(Je ne compte que les heures heureuses)
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: Débuguer. Avec quels outils

#3

Message par orax »

Si j'ai bien compris la question, je pense qu'elle concerne davantage les outils que la méthode. Donc pour faire du pas à pas, mettre des points d'arrêts, etc., il y a les deux outils suivants :
Graphical AutoIt Debugger et Dbug.au3


En complément, il y a aussi quelques solutions pour afficher des informations détaillées sur le déroulement du script.
  • Directives à inclure dans le script (voir l'aide de SciTE4AutoIt) :

    Code : Tout sélectionner

    #AutoIt3Wrapper_Run_Debug_Mode=                 ;(Y/N) Run Script with console debugging. Default=N
    #AutoIt3Wrapper_Run_Debug=                      ;(On/Off) Switch debugging on/off
  • Depuis SciTE4AutoIt : menu Tools > Debug... / Trace...
  • Code : Tout sélectionner

    AutoItSetOption("TrayIconDebug", 1) ; ou Opt("TrayIconDebug", 1)
Liens sur le sujet :
How can I debug my script?
Comment puis-je déboguer mon script ?
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
Répondre