Role de l'option Purifier dans la compilation d'un code ?
Publié : mar. 17/mai/2011 13:23
La question est dans le titre de ce post.
Forums PureBasic - Français
http://forums.purebasic.com/french/
*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
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.Fred a écrit :C'est pour detecter plus facilement les dépassement de memoire (buffer overflow).
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)