🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: microsoft.public.fr.vc
Article #6

Re: Prb avec SetThreadContext/GetThreadContext

#6
From: halfwolf
Date: Wed, 01 Feb 2006 09:43
108 lines
3996 bytes
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 pile
> non utilisé ? j'ai un gros doute... Est-ce que Paul Bacelar peut répondre à
> 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 ";


static char * WriteInStack(void)
{
   char sss[256 * 1024];
   char* p;

   p = sss + 255 * 1024;
   strcpy(p,machaine);
   return p;
}


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
Technical Details
Message-ID: <1138787028.355061.139170@g14g2000cwa.googlegroups.com>
Path: arc1-ca.pugleaf.net!g2news1.google.com!postnews.google.com!g14g2000cwa.googlegroups.com!not-for-mail
References: <dr7ecj$p8o$1@apollon.grec.isp.9tel.net> <43d79c24$0$21351$626a54ce@news.free.fr> <43d7a39a$0$6689$8fcfb975@news.wanadoo.fr> <Xns9756B6557263Ccns2cnsinvalid@212.27.42.133> <43d7b071$0$20138$8fcfb975@news.wanadoo.fr> <erpjLqfIGHA.3904@TK2MSFTNGP10.phx.gbl> <43d87a0d$0$6645$8fcfb975@news.wanadoo.fr> <43d8c3d1$0$18347$8fcfb975@news.wanadoo.fr> <1138704476.705679.81660@g44g2000cwa.googlegroups.com> <43df45d1$0$6657$8fcfb975@news.wanadoo.fr> <1138781732.741458.99210@z14g2000cwz.googlegroups.com> <43e0709f$0$20178$8fcfb975@news.wanadoo.fr>

Show Full Headers
Complete Article Headers
X-Google-Thread: f5082,a64b7cf201f73755
X-Google-Thread: 1053e6,a64b7cf201f73755
X-Google-Attributes: gidf5082,gid1053e6,public
X-Google-Language: FRENCH,ASCII
Path: arc1-ca.pugleaf.net!g2news1.google.com!postnews.google.com!g14g2000cwa.googlegroups.com!not-for-mail
From: halfwolf@free.fr
Newsgroups: microsoft.public.fr.vc,fr.comp.os.ms-windows.programmation
Subject: Re: Prb avec SetThreadContext/GetThreadContext
Date: 1 Feb 2006 01:43:48 -0800
Organization: http://groups.google.com
Lines: 109
Message-ID: <1138787028.355061.139170@g14g2000cwa.googlegroups.com>
References: <dr7ecj$p8o$1@apollon.grec.isp.9tel.net>
   <43d79c24$0$21351$626a54ce@news.free.fr>
   <43d7a39a$0$6689$8fcfb975@news.wanadoo.fr>
   <Xns9756B6557263Ccns2cnsinvalid@212.27.42.133>
   <43d7b071$0$20138$8fcfb975@news.wanadoo.fr>
   <erpjLqfIGHA.3904@TK2MSFTNGP10.phx.gbl>
   <43d87a0d$0$6645$8fcfb975@news.wanadoo.fr>
   <43d8c3d1$0$18347$8fcfb975@news.wanadoo.fr>
   <1138704476.705679.81660@g44g2000cwa.googlegroups.com>
   <43df45d1$0$6657$8fcfb975@news.wanadoo.fr>
   <1138781732.741458.99210@z14g2000cwz.googlegroups.com>
   <43e0709f$0$20178$8fcfb975@news.wanadoo.fr>
NNTP-Posting-Host: 194.2.193.253
Mime-Version: 1.0
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
X-Trace: posting.google.com 1138787033 7468 127.0.0.1 (1 Feb 2006 09:43:53 GMT)
X-Complaints-To: groups-abuse@google.com
NNTP-Posting-Date: Wed, 1 Feb 2006 09:43:53 +0000 (UTC)
User-Agent: G2/0.2
X-HTTP-UserAgent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727),gzip(gfe),gzip(gfe)
Complaints-To: groups-abuse@google.com
Injection-Info: g14g2000cwa.googlegroups.com; posting-host=194.2.193.253;
   posting-account=pSozQQwAAADKETaIzyXrOAAZZ8jr3yhQ