probleme avec 'debug"

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
case
Messages : 1546
Inscription : lun. 10/sept./2007 11:13

probleme avec 'debug"

Message par case »

au départ je pensais avoir un problème avec include binarie / catch image

mais c'est plutôt un problème avec la commande debug

est-ce normal il ne me semble pas que ce fut le cas auparavant

Code : Tout sélectionner

UsePNGImageDecoder()
w=OpenWindow(#PB_Any,0,0,640,480,"prg",#PB_Window_ScreenCentered|#PB_Window_BorderLess)
Enumeration
  #BGPIC
  #CANVAS
EndEnumeration
Debug CatchImage(#BGPIC, ?BG)    ; <--------------- n'est pas exécuté lorsque le debugger est desactivé ou en create executable du coup l'image n'est pas catchée
CanvasGadget(#CANVAS,0,241,640,240)
StartDrawing(CanvasOutput(#CANVAS))
DrawImage(ImageID(#BGPIC),0,0)
StopDrawing()
t=ElapsedMilliseconds()
Repeat
  WaitWindowEvent(0)  
Until ElapsedMilliseconds()-t>=3000
End
DataSection
  bg: 
  IncludeBinary "logo.png"
EndDataSection
ImageImage
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: probleme avec 'debug"

Message par Ar-S »

C'est le but du debug ou j'ai rien pigé à ton soucis ?
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: probleme avec 'debug"

Message par falsam »

Hello Case.
case a écrit :il ne me semble pas que ce fut le cas auparavant
J'ai essayé avec la version 4.40 qui ne connait pas le canvasgadget mais que j'ai remplacé par un imagegadget. CatchImage() ne fonctionne pas si l'option debug est désactivé tout comme dans la dernière version de Purebasic.

A priori, ce qui suit derrière la fonction Debug n'est pas pris en compte jusqu'à la prochaine instruction bien sur ^^.
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
case
Messages : 1546
Inscription : lun. 10/sept./2007 11:13

Re: probleme avec 'debug"

Message par case »

ok j'avais jamais remarqué auparavant bon a savoir...pourtant explicite ds la doc...
comme quoi je ne termine pas souvent mes projets ou que j'ai eu du bol ^^
debug

Affiche la fenêtre DebugOutput et le résultat correspondant. L'expression peut être toute expression valide en PureBasic, de forme numérique ou chaine. Un point important est que toute commande Debug et les expressions associées sont totalement ignorées (non compilées) si le débogueur est désactivé. Cela singifie qu'il n'est pas nécessaire de passer les instruction Debug en commentaires lors de la création de l'exécutable final tout en ayant la possibilité de tracer facilement l'exécution du programme pour le développeur.
ImageImage
Marc56
Messages : 2198
Inscription : sam. 08/févr./2014 15:19

Re: probleme avec 'debug"

Message par Marc56 »

On se fait toujours avoir à un moment en mettant une commande après Debug au lieu de mettre juste un résultat :?

La bonne méthode

Code : Tout sélectionner

Is_Loaded = CatchImeg(...
Debug Is_Loaded
À noter que Debug a aussi des options intéressantes 8)

- Il fait un transtypage automatique des valeurs numériques en chaines si la ligne commence par une chaine.
Pas besoin de mettre des Str() autour des valeurs numériques

Code : Tout sélectionner

Debug 1 ; <--- OK
Debug 1 + " deux" ; <--- Cette ligne va provoquer une erreur car il lui faut un Str() si mixé avec une chaine
Debug "" + 1 + " deux" ; <--- Pas celle-là car elle commence par une chaine :-)
- Il Supporte les codes d'échappement (\n\r etc) comme en C en utilisant la chaine commencée par un tilde '~'

Code : Tout sélectionner

Debug ~"Ligne 1\r\nLigne 2\r\nLigne 3"
:idea: Ce qui serait bien (mais je ne sais pas si c'est possible?) serait de pouvoir annuler le saut de ligne final, pour pouvoir ainsi mettre le résultat de plusieurs Debug sur une seule ligne (un peu comme Print et PrintN de la lib Console) avoir par exemple un DebugNoLn :?:

:wink:
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: probleme avec 'debug"

Message par Kwai chang caine »

On en apprend tous les jours 8O
Je ne me suis jamais rendu compte de ça, car je ne laisse jamais traîner de debug.
Mais c'est bon à savoir au cas ou... 8)
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Avatar de l’utilisateur
Zorro
Messages : 2186
Inscription : mar. 31/mai/2016 9:06

Re: probleme avec 'debug"

Message par Zorro »

Marc56 a écrit : serait de pouvoir annuler le saut de ligne final, pour pouvoir ainsi mettre le résultat de plusieurs Debug sur une seule ligne (un peu comme Print et PrintN de la lib Console) avoir par exemple un DebugNoLn :?:

:wink:
ben tu peux, il suffit de coller tes variables

debug Var1+" "+str(var2.i)+" "+var3.s
Avatar de l’utilisateur
JohnJohnsonSHERMAN
Messages : 648
Inscription : dim. 13/déc./2015 11:05
Localisation : Allez, cherche...
Contact :

Re: probleme avec 'debug"

Message par JohnJohnsonSHERMAN »

Tiens... à ce propos : le comportement du caractére d'échappement \b (retour arriére) est étrange non? Regardez :

Code : Tout sélectionner

OpenConsole("Test")

PrintN( "Ceci est une ligne de texte...")
PrintN( "...qui continue à la ligne.")
PrintN( "Et celle ci ?")
PrintN( ~"\b\b\b\b\b\b...Est-elle à la ligne? Une tabulation? \tOui!\nLà on est passé à la ligne... Ici est écrit Sher42\b\bman sans 42.")

Input()
[quote"La console"]Ceci est une ligne de texte...
...qui continue à la ligne.
Et celle ci ?
...Est-elle à la ligne? Une tabulation? Oui!
Là on est passé à la ligne... Ici est écrit Sherman sans 42.
[/quote]

Malgré tous les \b, le texte ne "remonte" pas avant un \n inséré par PrintN()...
C'est quand même bizarre que le \b ne puisse pas remonter avant un \n.. En C ca le fait trés bien pourtant.

Code : Tout sélectionner

#include <stdio.h>

int main() 
{
        printf("Ceci est écrit sur la même ligne que \n\b ceci... Non?\n");
        return 0;
}
"Le bug se situe entre la chaise et le clavier"
Votre expert national en bogage et segfaults.

CPU : AMD A8 Quad core - RAM 8Gb - HDD 2To
  • Windows 10 x64 - PB 5.61 x64
  • Linux Ubuntu 16.04 LTS x64 (dual boot) - PB pas encore réinstallé
Marc56
Messages : 2198
Inscription : sam. 08/févr./2014 15:19

Re: probleme avec 'debug"

Message par Marc56 »

Le mode console de PB n'est pas un simple appel du shell (command.com / cmd.exe ou $Term) de l'OS et la gestion des chaines étendues n'est pas (je crois) une simple encapsulation de la commande printf. Tous les codes de contrôle ne sont donc pas présents.

Si tu veux positionner exactement un curseur, utilises ConsoleLocate

:wink:
Avatar de l’utilisateur
JohnJohnsonSHERMAN
Messages : 648
Inscription : dim. 13/déc./2015 11:05
Localisation : Allez, cherche...
Contact :

Re: probleme avec 'debug"

Message par JohnJohnsonSHERMAN »

Je sais bien que ce n'est pas une copie de la fonction printf... C'est juste que je trouve bizarre que le caractére d'échappement \b fonctionne sauf quand il doit retourner sur un retour ligne \n... Evidemment avec locate, on peut mettre le curseur où l'on veut, mais c'est plus simple de le fiare (a mon gout) avec un \b... :P
"Le bug se situe entre la chaise et le clavier"
Votre expert national en bogage et segfaults.

CPU : AMD A8 Quad core - RAM 8Gb - HDD 2To
  • Windows 10 x64 - PB 5.61 x64
  • Linux Ubuntu 16.04 LTS x64 (dual boot) - PB pas encore réinstallé
Répondre