J'ai un probleme avec les fonctions SetThreadContext et GetThreadContext
sous Windows XP cela fonctionne
mais sous Windows 2000 sur certains postes (apparemment du Pentium M 1.6
GHz)
Les registres Dr0, Dr1, Dr2, Dr3, Dr6, Dr7 ne sont pas restitués
correctement.
CONTEXT context;
"Arnold McDonald (AMcD)" wrote in message news:43df5ef7$0$25425$ > Remi THOMAS wrote: > J'ai ajouté MVP à ma signature sur le NG "fr.comp.os.ms-windows.programmation" suite à la réponse bien plus
agressive
de Mr Vincent Burel qui avait le condescendance de nous donner un
programme
bateau montrant son dédain pour ma remarque sur le mécanisme de
Zéro-Paging
de WindowNT, montrant par la même sa totale ignorance de ces mécanismes
(et
le manque de clarté de ma remarque peut-être) mais aussi son "ouverture" d'esprit.
n'importe quoi, c'est vous même qui avait commencé par faire de la condescendence à 2 balles , genre "c'est quoi ce type qui se permet de parler de la pile en ces termes" ...
Le seul but de cet ajout était de monter à Mr Vincent Burel, que je maîtrisais quand même assez le sujet pour éviter ses sarcasmes et pour que ma remarque ait un peu plus d'écho sur son ego.
en l'occurence vous avez montrer le contraire à l'assistance a plus vu votre ego que le mien.
Si on passait plus de temps à s'aider les uns les autres plutôt qu'à voir qui à la plus grosse "maîtrise" ;-)
non, vous racontez des barres, vous ne répondez pas au questions qu'on vous pose, vous ne réfutez même pas les preuves qu'on vous donne... c'est pas comme ca que ca marche. Changer de métier, la prétrise vous irez bien par exemple :-)
VB
"Paul Bacelar" <paul.bacelar@PASDESPAMlaposte.net> wrote in message
news:drp3fc$dpm$1@aphrodite.grec.isp.9tel.net...
"Arnold McDonald (AMcD)" <killspammers@free.fr> wrote in message
news:43df5ef7$0$25425$636a15ce@news.free.fr...
> Remi THOMAS wrote:
>
J'ai ajouté MVP à ma signature sur le NG
"fr.comp.os.ms-windows.programmation" suite à la réponse bien plus
agressive
de Mr Vincent Burel qui avait le condescendance de nous donner un
programme
bateau montrant son dédain pour ma remarque sur le mécanisme de
Zéro-Paging
de WindowNT, montrant par la même sa totale ignorance de ces mécanismes
(et
le manque de clarté de ma remarque peut-être) mais aussi son "ouverture"
d'esprit.
n'importe quoi, c'est vous même qui avait commencé par faire de la
condescendence à 2 balles , genre "c'est quoi ce type qui se permet de
parler de la pile en ces termes" ...
Le seul but de cet ajout était de monter à Mr Vincent Burel, que je
maîtrisais quand même assez le sujet pour éviter ses sarcasmes et pour que
ma remarque ait un peu plus d'écho sur son ego.
en l'occurence vous avez montrer le contraire à l'assistance a plus vu votre
ego que le mien.
Si on passait plus de temps à s'aider les uns les autres plutôt qu'à voir
qui à la plus grosse "maîtrise" ;-)
non, vous racontez des barres, vous ne répondez pas au questions qu'on vous
pose, vous ne réfutez même pas les preuves qu'on vous donne... c'est pas
comme ca que ca marche. Changer de métier, la prétrise vous irez bien par
exemple :-)
"Arnold McDonald (AMcD)" wrote in message news:43df5ef7$0$25425$ > Remi THOMAS wrote: > J'ai ajouté MVP à ma signature sur le NG "fr.comp.os.ms-windows.programmation" suite à la réponse bien plus
agressive
de Mr Vincent Burel qui avait le condescendance de nous donner un
programme
bateau montrant son dédain pour ma remarque sur le mécanisme de
Zéro-Paging
de WindowNT, montrant par la même sa totale ignorance de ces mécanismes
(et
le manque de clarté de ma remarque peut-être) mais aussi son "ouverture" d'esprit.
n'importe quoi, c'est vous même qui avait commencé par faire de la condescendence à 2 balles , genre "c'est quoi ce type qui se permet de parler de la pile en ces termes" ...
Le seul but de cet ajout était de monter à Mr Vincent Burel, que je maîtrisais quand même assez le sujet pour éviter ses sarcasmes et pour que ma remarque ait un peu plus d'écho sur son ego.
en l'occurence vous avez montrer le contraire à l'assistance a plus vu votre ego que le mien.
Si on passait plus de temps à s'aider les uns les autres plutôt qu'à voir qui à la plus grosse "maîtrise" ;-)
non, vous racontez des barres, vous ne répondez pas au questions qu'on vous pose, vous ne réfutez même pas les preuves qu'on vous donne... c'est pas comme ca que ca marche. Changer de métier, la prétrise vous irez bien par exemple :-)
VB
halfwolf
Vincent Burel wrote:
Pas de probleme, dans ma fonction, déclare une chaine de 256 ko, et é crit sur le dernier ko.
Fait, mais comment puis-je provoquer un swap sur ce processus sans attendre qu'il tombe du ciel ? De plus j'aurais pensé que le fait d'avoir une boucle infinie sans sleep force le processus a rester en mémoire en permanence pour être exécuté et donc à ne pas être swappé.
HalfWolf
Vincent Burel wrote:
Pas de probleme, dans ma fonction, déclare une chaine de 256 ko, et é crit
sur le dernier ko.
Fait, mais comment puis-je provoquer un swap sur ce processus sans
attendre qu'il tombe du ciel ?
De plus j'aurais pensé que le fait d'avoir une boucle infinie sans
sleep force le processus a rester en mémoire en permanence pour être
exécuté et donc à ne pas être swappé.
Pas de probleme, dans ma fonction, déclare une chaine de 256 ko, et é crit sur le dernier ko.
Fait, mais comment puis-je provoquer un swap sur ce processus sans attendre qu'il tombe du ciel ? De plus j'aurais pensé que le fait d'avoir une boucle infinie sans sleep force le processus a rester en mémoire en permanence pour être exécuté et donc à ne pas être swappé.
HalfWolf
Vincent Burel
wrote in message news: Vincent Burel wrote:
Pas de probleme, dans ma fonction, déclare une chaine de 256 ko, et écrit sur le dernier ko.
Fait, mais comment puis-je provoquer un swap sur ce processus sans attendre qu'il tombe du ciel ?
C'est Toutle problème. normallement on y arrive en saturant le systeme d'applications, lancer donc des applications qui bouffe de la mémoire, et qui font qqc de temps en temps... Vous pouvez faire une appli qui reserve 64Mo de RAM et qui la parcoure par tranche de 16Ko, vous en lancez une vingtaine ou plus en fonction de votre RAM, ca doit obliger le systeme à faire du swapping.
Mais est ce que le systeme swap toute l'application ? pile comprise ? je ne le crois pas. D'ailleurs, est-ce que le systeme swap la mémoire de la pile non utilisé ? j'ai un gros doute... Est-ce que Paul Bacelar peut répondre à ces questions ? :-))
De plus j'aurais pensé que le fait d'avoir une boucle infinie sans sleep force le processus a rester en mémoire en permanence pour être exécuté et donc à ne pas être swappé.
Faites un Sleep(10.000) dans la boucle si vous voulez (en ayant écrit dans la pile 255ko plus loins vous pouvez vous payer le lux d'appeler des fonctions entre chaque lectures).
VB
<halfwolf@free.fr> wrote in message
news:1138781732.741458.99210@z14g2000cwz.googlegroups.com...
Vincent Burel wrote:
Pas de probleme, dans ma fonction, déclare une chaine de 256 ko, et écrit
sur le dernier ko.
Fait, mais comment puis-je provoquer un swap sur ce processus sans
attendre qu'il tombe du ciel ?
C'est Toutle problème. normallement on y arrive en saturant le systeme
d'applications, lancer donc des applications qui bouffe de la mémoire, et
qui font qqc de temps en temps... Vous pouvez faire une appli qui reserve
64Mo de RAM et qui la parcoure par tranche de 16Ko, vous en lancez une
vingtaine ou plus en fonction de votre RAM, ca doit obliger le systeme à
faire du swapping.
Mais est ce que le systeme swap toute l'application ? pile comprise ? je ne
le crois pas. D'ailleurs, est-ce que le systeme swap la mémoire de la pile
non utilisé ? j'ai un gros doute... Est-ce que Paul Bacelar peut répondre à
ces questions ? :-))
De plus j'aurais pensé que le fait d'avoir une boucle infinie sans
sleep force le processus a rester en mémoire en permanence pour être
exécuté et donc à ne pas être swappé.
Faites un Sleep(10.000) dans la boucle si vous voulez (en ayant écrit dans
la pile 255ko plus loins vous pouvez vous payer le lux d'appeler des
fonctions entre chaque lectures).
Pas de probleme, dans ma fonction, déclare une chaine de 256 ko, et écrit sur le dernier ko.
Fait, mais comment puis-je provoquer un swap sur ce processus sans attendre qu'il tombe du ciel ?
C'est Toutle problème. normallement on y arrive en saturant le systeme d'applications, lancer donc des applications qui bouffe de la mémoire, et qui font qqc de temps en temps... Vous pouvez faire une appli qui reserve 64Mo de RAM et qui la parcoure par tranche de 16Ko, vous en lancez une vingtaine ou plus en fonction de votre RAM, ca doit obliger le systeme à faire du swapping.
Mais est ce que le systeme swap toute l'application ? pile comprise ? je ne le crois pas. D'ailleurs, est-ce que le systeme swap la mémoire de la pile non utilisé ? j'ai un gros doute... Est-ce que Paul Bacelar peut répondre à ces questions ? :-))
De plus j'aurais pensé que le fait d'avoir une boucle infinie sans sleep force le processus a rester en mémoire en permanence pour être exécuté et donc à ne pas être swappé.
Faites un Sleep(10.000) dans la boucle si vous voulez (en ayant écrit dans la pile 255ko plus loins vous pouvez vous payer le lux d'appeler des fonctions entre chaque lectures).
VB
halfwolf
Vincent Burel wrote:
Mais est ce que le systeme swap toute l'application ? pile comprise ? je ne le crois pas. D'ailleurs, est-ce que le systeme swap la mémoire de la p ile non utilisé ? j'ai un gros doute... Est-ce que Paul Bacelar peut répo ndre à ces questions ? :-))
J'aimerais bien aussi, car mon test ne penche pas en faveur de la thèse de Paul. Donc : - soit la pile (au delà du pointeur de pile) n'est jamais modifiée par le système. - soit le test ne se met pas dans les conditions où le système modifie la pile.
J'ai testé sous Windows 2000 SP4. J'ai lancé les 2 programmes suivants en même temps. J'ai bien eu du swap (on m'a même étendu ma mémoire virtuelle, c'est dire) et je n'ai jamais vu affiché "On a touche a ma pile.". La balle est dans le camp de Paul...
Voici le code en C du test de la pile :
#include <windows.h> #include <stdio.h>
static char machaine[]="Ma pile n'est jamais modifiée, sauf si je fais en sorte qu'elle le soit ";
void TestSiQQcToucheAMaPile(void) { long vi; char * lp; lp=WriteInStack(); while (1) { Sleep(10 * 1000); vi=0; while (machaine[vi]!=0) { if (lp[vi] != machaine[vi]) { printf("On a touche a ma pile.n"); return; } vi++; } } }
int main(void) { TestSiQQcToucheAMaPile();
return 0; }
Et voici le code en C utilisé pour provoquer un swap (j'ai 256 Mo de mémoire physique) :
#include <windows.h> #include <stdio.h>
int main(void) { char* p; size_t sz;
sz = 256 * 1024 * 1024; p = malloc(sz); if (p == NULL) { printf("Pas assez de memoire.n"); return EXIT_FAILURE; }
while (1) { size_t i;
for (i = 0; i < sz; i += 16 * 1024) { p[i] = 't'; }
Sleep(1000); }
free(p);
return EXIT_SUCCESS; }
HalfWolf
Vincent Burel wrote:
Mais est ce que le systeme swap toute l'application ? pile comprise ? je ne
le crois pas. D'ailleurs, est-ce que le systeme swap la mémoire de la p ile
non utilisé ? j'ai un gros doute... Est-ce que Paul Bacelar peut répo ndre à
ces questions ? :-))
J'aimerais bien aussi, car mon test ne penche pas en faveur de la
thèse de Paul.
Donc :
- soit la pile (au delà du pointeur de pile) n'est jamais modifiée
par le système.
- soit le test ne se met pas dans les conditions où le système
modifie la pile.
J'ai testé sous Windows 2000 SP4.
J'ai lancé les 2 programmes suivants en même temps. J'ai bien eu du
swap (on m'a même étendu ma mémoire virtuelle, c'est dire) et je
n'ai jamais vu affiché "On a touche a ma pile.".
La balle est dans le camp de Paul...
Voici le code en C du test de la pile :
#include <windows.h>
#include <stdio.h>
static char machaine[]="Ma pile n'est jamais modifiée, sauf si je fais
en sorte qu'elle le soit ";
Mais est ce que le systeme swap toute l'application ? pile comprise ? je ne le crois pas. D'ailleurs, est-ce que le systeme swap la mémoire de la p ile non utilisé ? j'ai un gros doute... Est-ce que Paul Bacelar peut répo ndre à ces questions ? :-))
J'aimerais bien aussi, car mon test ne penche pas en faveur de la thèse de Paul. Donc : - soit la pile (au delà du pointeur de pile) n'est jamais modifiée par le système. - soit le test ne se met pas dans les conditions où le système modifie la pile.
J'ai testé sous Windows 2000 SP4. J'ai lancé les 2 programmes suivants en même temps. J'ai bien eu du swap (on m'a même étendu ma mémoire virtuelle, c'est dire) et je n'ai jamais vu affiché "On a touche a ma pile.". La balle est dans le camp de Paul...
Voici le code en C du test de la pile :
#include <windows.h> #include <stdio.h>
static char machaine[]="Ma pile n'est jamais modifiée, sauf si je fais en sorte qu'elle le soit ";
Et voici le code en C utilisé pour provoquer un swap (j'ai 256 Mo de mémoire physique) :
[..]
while (1) { size_t i;
for (i = 0; i < sz; i += 16 * 1024) { p[i] = 't'; }
Sleep(1000); }
le code ci-dessus ne fait pas grand chose, faite plutot
size_t i,n; i=0; while (1) { for (n = 0; n < 16 * 1024; i ++) p[i] = 't'; if (i>=sz) i=0; Sleep(100); }
et pour vraiment stresser le systeme, lancez en un dizaine.
VB
halfwolf
Vincent Burel wrote:
le code ci-dessus ne fait pas grand chose, faite plutot
size_t i,n; i=0; while (1) { for (n = 0; n < 16 * 1024; i ++) p[i] = 't'; if (i>=sz) i=0; Sleep(100); }
Je ne comprends pas ce que tu veux faire avec la modification que tu me proposes car le code est buggé : n n'est jamais incrémenté donc on a une belle boucle infini avec i qui s'incrémente jusqu'au crash.
Je pensais que s'il suffisait de modifier 1 octet par page pour provoquer le retour de la page dans la mémoire physique et donc forcer le swap de la page qui était présente dans la mémoire physique.
Au passage une page fait bien 16Ko ? Je pensais de mémoire que c'était 4Ko, mais je mélange peut-être.
et pour vraiment stresser le systeme, lancez en un dizaine.
Qu'entends tu par stress ? Je pensais qu'il nous suffisait juste de s'assurer qu'il y ait eu un swap pour que la pile soit modifiée. Tu penses qu'il faut que j'aille jusqu'à ce que je ne puisse plus augmenter ma mémoire virtuelle pour que le système commence à envisager un swap de la pile ?
Je ne mets pas de mauvaise volonté, mais j'aimerais faire le minimum testant, parce qu'après c'est moi qui stresse pour récupérer la main sur le PC :-)
HalfWolf
Vincent Burel wrote:
le code ci-dessus ne fait pas grand chose, faite plutot
size_t i,n;
i=0;
while (1)
{
for (n = 0; n < 16 * 1024; i ++) p[i] = 't';
if (i>=sz) i=0;
Sleep(100);
}
Je ne comprends pas ce que tu veux faire avec la modification que tu me
proposes car le code est buggé : n n'est jamais incrémenté donc on a
une belle boucle infini avec i qui s'incrémente jusqu'au crash.
Je pensais que s'il suffisait de modifier 1 octet par page pour
provoquer le retour de la page dans la mémoire physique et donc forcer
le swap de la page qui était présente dans la mémoire physique.
Au passage une page fait bien 16Ko ? Je pensais de mémoire que
c'était 4Ko, mais je mélange peut-être.
et pour vraiment stresser le systeme, lancez en un dizaine.
Qu'entends tu par stress ?
Je pensais qu'il nous suffisait juste de s'assurer qu'il y ait eu un
swap pour que la pile soit modifiée.
Tu penses qu'il faut que j'aille jusqu'à ce que je ne puisse plus
augmenter ma mémoire virtuelle pour que le système commence à
envisager un swap de la pile ?
Je ne mets pas de mauvaise volonté, mais j'aimerais faire le minimum
testant, parce qu'après c'est moi qui stresse pour récupérer la main
sur le PC :-)
le code ci-dessus ne fait pas grand chose, faite plutot
size_t i,n; i=0; while (1) { for (n = 0; n < 16 * 1024; i ++) p[i] = 't'; if (i>=sz) i=0; Sleep(100); }
Je ne comprends pas ce que tu veux faire avec la modification que tu me proposes car le code est buggé : n n'est jamais incrémenté donc on a une belle boucle infini avec i qui s'incrémente jusqu'au crash.
Je pensais que s'il suffisait de modifier 1 octet par page pour provoquer le retour de la page dans la mémoire physique et donc forcer le swap de la page qui était présente dans la mémoire physique.
Au passage une page fait bien 16Ko ? Je pensais de mémoire que c'était 4Ko, mais je mélange peut-être.
et pour vraiment stresser le systeme, lancez en un dizaine.
Qu'entends tu par stress ? Je pensais qu'il nous suffisait juste de s'assurer qu'il y ait eu un swap pour que la pile soit modifiée. Tu penses qu'il faut que j'aille jusqu'à ce que je ne puisse plus augmenter ma mémoire virtuelle pour que le système commence à envisager un swap de la pile ?
Je ne mets pas de mauvaise volonté, mais j'aimerais faire le minimum testant, parce qu'après c'est moi qui stresse pour récupérer la main sur le PC :-)
HalfWolf
Vincent Burel
wrote in message news: Vincent Burel wrote:
le code ci-dessus ne fait pas grand chose, faite plutot
size_t i,n; i=0; while (1) { for (n = 0; n < 16 * 1024; i ++) p[i] = 't'; if (i>=sz) i=0; Sleep(100); }
Je ne comprends pas ce que tu veux faire avec la modification que tu me proposes car le code est buggé : n n'est jamais incrémenté donc on a une belle boucle infini avec i qui s'incrémente jusqu'au crash.
oui, c'est n++
Je pensais que s'il suffisait de modifier 1 octet par page pour provoquer le retour de la page dans la mémoire physique et donc forcer le swap de la page qui était présente dans la mémoire physique.
ha oui exact, j'ai mal lu.
Au passage une page fait bien 16Ko ? Je pensais de mémoire que c'était 4Ko, mais je mélange peut-être.
je crois que c'est 4ko la page... mais j'imagine que ce paramètre peut évoluer.
Tu penses qu'il faut que j'aille jusqu'à ce que je ne puisse plus augmenter ma mémoire virtuelle pour que le système commence à envisager un swap de la pile ?
ouai, parce que, à la place du système, si swapperait la pile en dernier recours. Le systeme est bien stresse quand il swappe en permanence, ton disque dur ne s'arrète plus.
Je ne mets pas de mauvaise volonté, mais j'aimerais faire le minimum testant, parce qu'après c'est moi qui stresse pour récupérer la main sur le PC :-)
ha oui :-), fait une boucle de message pour récupérer un event de sortie...
VB
<halfwolf@free.fr> wrote in message
news:1138794765.582576.274630@g14g2000cwa.googlegroups.com...
Vincent Burel wrote:
le code ci-dessus ne fait pas grand chose, faite plutot
size_t i,n;
i=0;
while (1)
{
for (n = 0; n < 16 * 1024; i ++) p[i] = 't';
if (i>=sz) i=0;
Sleep(100);
}
Je ne comprends pas ce que tu veux faire avec la modification que tu me
proposes car le code est buggé : n n'est jamais incrémenté donc on a
une belle boucle infini avec i qui s'incrémente jusqu'au crash.
oui, c'est n++
Je pensais que s'il suffisait de modifier 1 octet par page pour
provoquer le retour de la page dans la mémoire physique et donc forcer
le swap de la page qui était présente dans la mémoire physique.
ha oui exact, j'ai mal lu.
Au passage une page fait bien 16Ko ? Je pensais de mémoire que
c'était 4Ko, mais je mélange peut-être.
je crois que c'est 4ko la page... mais j'imagine que ce paramètre peut
évoluer.
Tu penses qu'il faut que j'aille jusqu'à ce que je ne puisse plus
augmenter ma mémoire virtuelle pour que le système commence à
envisager un swap de la pile ?
ouai, parce que, à la place du système, si swapperait la pile en dernier
recours. Le systeme est bien stresse quand il swappe en permanence, ton
disque dur ne s'arrète plus.
Je ne mets pas de mauvaise volonté, mais j'aimerais faire le minimum
testant, parce qu'après c'est moi qui stresse pour récupérer la main
sur le PC :-)
ha oui :-), fait une boucle de message pour récupérer un event de sortie...
le code ci-dessus ne fait pas grand chose, faite plutot
size_t i,n; i=0; while (1) { for (n = 0; n < 16 * 1024; i ++) p[i] = 't'; if (i>=sz) i=0; Sleep(100); }
Je ne comprends pas ce que tu veux faire avec la modification que tu me proposes car le code est buggé : n n'est jamais incrémenté donc on a une belle boucle infini avec i qui s'incrémente jusqu'au crash.
oui, c'est n++
Je pensais que s'il suffisait de modifier 1 octet par page pour provoquer le retour de la page dans la mémoire physique et donc forcer le swap de la page qui était présente dans la mémoire physique.
ha oui exact, j'ai mal lu.
Au passage une page fait bien 16Ko ? Je pensais de mémoire que c'était 4Ko, mais je mélange peut-être.
je crois que c'est 4ko la page... mais j'imagine que ce paramètre peut évoluer.
Tu penses qu'il faut que j'aille jusqu'à ce que je ne puisse plus augmenter ma mémoire virtuelle pour que le système commence à envisager un swap de la pile ?
ouai, parce que, à la place du système, si swapperait la pile en dernier recours. Le systeme est bien stresse quand il swappe en permanence, ton disque dur ne s'arrète plus.
Je ne mets pas de mauvaise volonté, mais j'aimerais faire le minimum testant, parce qu'après c'est moi qui stresse pour récupérer la main sur le PC :-)
ha oui :-), fait une boucle de message pour récupérer un event de sortie...
VB
halfwolf
Après plusieurs test, je me suis aperçu qu'il était assez difficile de faire swapper la pile car elle est petite. J'ai adopté une autre méthode : j'utilise 64Mo sur la pile (utilisation de /STACK pour ne pas crasher) et je lance plusieurs instances du programme. J'ai observé dans le gestionnaire de tâches que l'utilisation mémoire du programme est descendue (passée de 64Ko à 12Ko), donc la pile a bien été swappée. Après avoir tué une instance, l'utilisation mémoire du programme est remontée à 64Ko. Aucune modification de la pile n'a été détectée.
Conclusion : la pile a été swappée mais elle n'a pas été modifiée.
Voici le seul et unique programme de test à lancer plusieurs fois (attention de bien utiliser /STACK:70000000).
for (i = 0; i < DATA_ON_STACK_SIZE; i += PAGE_SIZE) { if (strcmp(lp + i, machaine) != 0) { printf("nOn a touche a ma pile.n"); return; } } printf("."); } }
int main(void) { TestSiQQcToucheAMaPile();
return 0; }
HalfWolf
Après plusieurs test, je me suis aperçu qu'il était assez difficile
de faire swapper la pile car elle est petite.
J'ai adopté une autre méthode : j'utilise 64Mo sur la pile
(utilisation de /STACK pour ne pas crasher) et je lance plusieurs
instances du programme.
J'ai observé dans le gestionnaire de tâches que l'utilisation
mémoire du programme est descendue (passée de 64Ko à 12Ko), donc la
pile a bien été swappée.
Après avoir tué une instance, l'utilisation mémoire du programme est
remontée à 64Ko.
Aucune modification de la pile n'a été détectée.
Conclusion : la pile a été swappée mais elle n'a pas été
modifiée.
Voici le seul et unique programme de test à lancer plusieurs fois
(attention de bien utiliser /STACK:70000000).
for (i = 0; i < DATA_ON_STACK_SIZE; i += PAGE_SIZE)
{
if (strcmp(lp + i, machaine) != 0)
{
printf("nOn a touche a ma pile.n");
return;
}
}
printf(".");
}
}
Après plusieurs test, je me suis aperçu qu'il était assez difficile de faire swapper la pile car elle est petite. J'ai adopté une autre méthode : j'utilise 64Mo sur la pile (utilisation de /STACK pour ne pas crasher) et je lance plusieurs instances du programme. J'ai observé dans le gestionnaire de tâches que l'utilisation mémoire du programme est descendue (passée de 64Ko à 12Ko), donc la pile a bien été swappée. Après avoir tué une instance, l'utilisation mémoire du programme est remontée à 64Ko. Aucune modification de la pile n'a été détectée.
Conclusion : la pile a été swappée mais elle n'a pas été modifiée.
Voici le seul et unique programme de test à lancer plusieurs fois (attention de bien utiliser /STACK:70000000).
for (i = 0; i < DATA_ON_STACK_SIZE; i += PAGE_SIZE) { if (strcmp(lp + i, machaine) != 0) { printf("nOn a touche a ma pile.n"); return; } } printf("."); } }
int main(void) { TestSiQQcToucheAMaPile();
return 0; }
HalfWolf
Bertrand Lenoir-Welter
Paul Bacelar :
La fatigue aidant, mon sens de l'humour ne c'est pas déclanché sur ta remarque (je cherche toujours les smiley ;-))))
De nombreuses civilisations s'en sont passées pendant quelques millénaires. Même les hiéroglyphes égyptiens et le Kanji chinois n'en ont pas vu l'utilité. Désolé, je dois être vieux jeu.
Inversement, si tu penses que les smileys sont de rigueur, sois cohérent et ajoute un truc genre ;-) quand tu traites quelqu'un de clown. Parce que ni Vincent ni moi ne l'avons compris comme un trait d'humour.
Quand à mes explications, le post de halfwolf dans ce même fil semble montrer qu'elles n'étaient pas si obscures ;-)))
Je ne te critique pas. Me faire traiter de clown est assez anodin sur les NG quand on compare aux noms d'oiseaux qui circulent.
Mais je pense que la perche tendue par Vincent valait la peine que tu prennes quelques minutes à la frotter à ta conviction, histoire de voir laquelle des deux était la plus abrasive. Moi j'ai pas essayé, mais j'avais pas non plus de conviction en la matière.
Que Vincent ait un style un peu rugueux dans les NG, tout le monde le sait et s'en accomode fort bien. Suffit de ne pas trop provoquer la bête. Mais son côté orageux n'enlève rien de rien à ses compétences. Je souhaite à beaucoup de monde de connaître les arcanes de Windows comme lui et d'aider avec autant d'efficacité. En tout cas je me le souhaite à moi.
Passons à des choses bien plus constructives.
Happy programming.
Thanks, same to you.
Paul Bacelar :
La fatigue aidant, mon sens de l'humour ne c'est pas déclanché sur ta
remarque (je cherche toujours les smiley ;-))))
De nombreuses civilisations s'en sont passées pendant quelques
millénaires. Même les hiéroglyphes égyptiens et le Kanji chinois n'en
ont pas vu l'utilité. Désolé, je dois être vieux jeu.
Inversement, si tu penses que les smileys sont de rigueur, sois cohérent
et ajoute un truc genre ;-) quand tu traites quelqu'un de clown. Parce
que ni Vincent ni moi ne l'avons compris comme un trait d'humour.
Quand à mes explications, le post de halfwolf dans ce même fil semble
montrer qu'elles n'étaient pas si obscures ;-)))
Je ne te critique pas. Me faire traiter de clown est assez anodin sur
les NG quand on compare aux noms d'oiseaux qui circulent.
Mais je pense que la perche tendue par Vincent valait la peine que tu
prennes quelques minutes à la frotter à ta conviction, histoire de voir
laquelle des deux était la plus abrasive. Moi j'ai pas essayé, mais
j'avais pas non plus de conviction en la matière.
Que Vincent ait un style un peu rugueux dans les NG, tout le monde le
sait et s'en accomode fort bien. Suffit de ne pas trop provoquer la
bête. Mais son côté orageux n'enlève rien de rien à ses compétences. Je
souhaite à beaucoup de monde de connaître les arcanes de Windows comme
lui et d'aider avec autant d'efficacité. En tout cas je me le souhaite à
moi.
La fatigue aidant, mon sens de l'humour ne c'est pas déclanché sur ta remarque (je cherche toujours les smiley ;-))))
De nombreuses civilisations s'en sont passées pendant quelques millénaires. Même les hiéroglyphes égyptiens et le Kanji chinois n'en ont pas vu l'utilité. Désolé, je dois être vieux jeu.
Inversement, si tu penses que les smileys sont de rigueur, sois cohérent et ajoute un truc genre ;-) quand tu traites quelqu'un de clown. Parce que ni Vincent ni moi ne l'avons compris comme un trait d'humour.
Quand à mes explications, le post de halfwolf dans ce même fil semble montrer qu'elles n'étaient pas si obscures ;-)))
Je ne te critique pas. Me faire traiter de clown est assez anodin sur les NG quand on compare aux noms d'oiseaux qui circulent.
Mais je pense que la perche tendue par Vincent valait la peine que tu prennes quelques minutes à la frotter à ta conviction, histoire de voir laquelle des deux était la plus abrasive. Moi j'ai pas essayé, mais j'avais pas non plus de conviction en la matière.
Que Vincent ait un style un peu rugueux dans les NG, tout le monde le sait et s'en accomode fort bien. Suffit de ne pas trop provoquer la bête. Mais son côté orageux n'enlève rien de rien à ses compétences. Je souhaite à beaucoup de monde de connaître les arcanes de Windows comme lui et d'aider avec autant d'efficacité. En tout cas je me le souhaite à moi.
Passons à des choses bien plus constructives.
Happy programming.
Thanks, same to you.
Vincent Burel
Bravo pour le test ! c'est comme ca que j'aime l'informatique, avec des exemples concrets, des protocoles de test intelligents et des conclusions qui découlent de l'expérimentation.
VB
wrote in message news: Après plusieurs test, je me suis aperçu qu'il était assez difficile de faire swapper la pile car elle est petite. J'ai adopté une autre méthode : j'utilise 64Mo sur la pile (utilisation de /STACK pour ne pas crasher) et je lance plusieurs instances du programme. J'ai observé dans le gestionnaire de tâches que l'utilisation mémoire du programme est descendue (passée de 64Ko à 12Ko), donc la pile a bien été swappée. Après avoir tué une instance, l'utilisation mémoire du programme est remontée à 64Ko. Aucune modification de la pile n'a été détectée.
Conclusion : la pile a été swappée mais elle n'a pas été modifiée.
Bravo pour le test !
c'est comme ca que j'aime l'informatique, avec des exemples concrets, des
protocoles de test intelligents et des conclusions qui découlent de
l'expérimentation.
VB
<halfwolf@free.fr> wrote in message
news:1138814852.583024.195880@g43g2000cwa.googlegroups.com...
Après plusieurs test, je me suis aperçu qu'il était assez difficile
de faire swapper la pile car elle est petite.
J'ai adopté une autre méthode : j'utilise 64Mo sur la pile
(utilisation de /STACK pour ne pas crasher) et je lance plusieurs
instances du programme.
J'ai observé dans le gestionnaire de tâches que l'utilisation
mémoire du programme est descendue (passée de 64Ko à 12Ko), donc la
pile a bien été swappée.
Après avoir tué une instance, l'utilisation mémoire du programme est
remontée à 64Ko.
Aucune modification de la pile n'a été détectée.
Conclusion : la pile a été swappée mais elle n'a pas été
modifiée.
Bravo pour le test ! c'est comme ca que j'aime l'informatique, avec des exemples concrets, des protocoles de test intelligents et des conclusions qui découlent de l'expérimentation.
VB
wrote in message news: Après plusieurs test, je me suis aperçu qu'il était assez difficile de faire swapper la pile car elle est petite. J'ai adopté une autre méthode : j'utilise 64Mo sur la pile (utilisation de /STACK pour ne pas crasher) et je lance plusieurs instances du programme. J'ai observé dans le gestionnaire de tâches que l'utilisation mémoire du programme est descendue (passée de 64Ko à 12Ko), donc la pile a bien été swappée. Après avoir tué une instance, l'utilisation mémoire du programme est remontée à 64Ko. Aucune modification de la pile n'a été détectée.
Conclusion : la pile a été swappée mais elle n'a pas été modifiée.