Role de l'option Purifier dans la compilation d'un code ?

Sujets variés concernant le développement en PureBasic
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Role de l'option Purifier dans la compilation d'un code ?

Message par falsam »

La question est dans le titre de ce post.
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%
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Role de l'option Purifier dans la compilation d'un code

Message par Backup »

je pense que Fred fait parti de la Scientologie :roll: :lol:

PurifierGranularity(VariablesGlobales, VariablesLocales, ChainesDeCarateres, BlocsDynamiques)
Description

Modifie l'intervalle de vérification d'intégrité des données du purificateur. Chaque valeur représente le nombre de lignes qui sont exécutés entre chaque type de vérification. La valeur #PB_Ignore ne changera pas la valeur courante. Une valeur de zéro desactivera complètement la vérification.
Exemple:

; Disable check for string memory and check allocated memory every 10 lines
PurifierGranularity(#PB_Ignore, #PB_Ignore, 0, 10)

OS Supportés

Tous
*


de memoire, il me semble que le purifier est un observateur de ligne de code utilisées ...

ça te fait ressortir les lignes de code le plus souvent utilisée
ça permet de savoir quelle partie de code bouffe du temps par exemple :)

[reedit] ha non , ça c'est le profiler !! :roll:
Fred
Site Admin
Messages : 2808
Inscription : mer. 21/janv./2004 11:03

Re: Role de l'option Purifier dans la compilation d'un code

Message par Fred »

C'est pour detecter plus facilement les dépassement de memoire (buffer overflow).
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Role de l'option Purifier dans la compilation d'un code

Message par falsam »

Fred et Dobro merci pour vos réponses.
Fred a écrit :C'est pour detecter plus facilement les dépassement de memoire (buffer overflow).
A part cocher la case adéquate je ne comprends pas comment mettre cette fonctionnalité en oeuvre. Ou voit on le résultat par exemple.
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%
comtois
Messages : 5186
Inscription : mer. 21/janv./2004 17:48
Contact :

Re: Role de l'option Purifier dans la compilation d'un code

Message par comtois »

un exemple (de Fred) pour tester :

Code : Tout sélectionner

Structure MyPoint
  x.i
  y.i
EndStructure

Procedure a(directparam)

  a.l = 10
  c.b = 1
  Point.MyPoint
 
  a$ = "Fred"
 
  *Memory = AllocateMemory(10)
  PokeB(*Memory-1,1) ; memory bank corruption
 
  *CrazyPointer.Long = @a
  *CrazyPointer+1
  *CrazyPointer\l = 152  ; stack corruption

EndProcedure


MyGlobal.l = 0
SmallGlobal.b = 1
SmallGlobal2.w = 1
MyGlobalPoint.MyPoint

*CrazyPointer.Long = @MyGlobal
*CrazyPointer+1
*CrazyPointer\l = 152 ; global data overwrite

a(10)
Lance le code une première fois sans activer le purifier, aucun défaut signalé.
Lance le code une seconde fois en activant le purifier (Dans les options du compilo , (Dans le 2ème onglet), tu auras un défaut.
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Re: Role de l'option Purifier dans la compilation d'un code

Message par Chris »

Salut Comtois, tu te fais rare ces temps-ci!

Content de te revoir trainer dans le coin :wink:
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Role de l'option Purifier dans la compilation d'un code

Message par falsam »

@comtois : Merci pour ce code qui m'a bien montré l'intérêt du purifier.
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%
Répondre