Bonjour,
On travail sur un projet avec une partie C++ et mes camarades se sont
démerdés pour obtenir un comportement fort curieux. Le programme réalisé
fonctionne très bien lancé depuis Visual Studio 7.1 mais plante si on le
lance "à la main", que ce soit en release ou debug.
Ca plante dans std::list, mais ça viendrait pas de là, je cherche...
Mais ça me laisse perplexe : je pensais que VS se limitait à changer le path
de l'exe à celui du projet, qu'il prenanit en main la console (pour affciher
"Appuyez sur une touche..." en fin d'exécution) mais je vois pas ce qu'il
peut faire qui modifie le comportement du progremme, apparement dans
l'allocation/destruction des objets. Une idée ?
Lancé via la petite flèche (donc avec debug). Je sais pas si j'ai testé sans debogage.
"Manuel Leclerc" a écrit dans le message de news:
Aurélien Regat-Barrel a écrit :
> Le programme réalisé fonctionne très bien lancé depuis > Visual Studio 7.1 mais plante si on le lance "à la main", > que ce soit en release ou debug.
Lancé depuis VS par Ctrl+F5 ou par F5 ?
Lancé via la petite flèche (donc avec debug). Je sais pas si j'ai testé sans
debogage.
"Manuel Leclerc" <manuel.leclerc@alussinan.org> a écrit dans le message de
news: 402b430f@neottia.net...
Aurélien Regat-Barrel a écrit :
> Le programme réalisé fonctionne très bien lancé depuis
> Visual Studio 7.1 mais plante si on le lance "à la main",
> que ce soit en release ou debug.
Lancé via la petite flèche (donc avec debug). Je sais pas si j'ai testé sans debogage.
"Manuel Leclerc" a écrit dans le message de news:
Aurélien Regat-Barrel a écrit :
> Le programme réalisé fonctionne très bien lancé depuis > Visual Studio 7.1 mais plante si on le lance "à la main", > que ce soit en release ou debug.
Lancé depuis VS par Ctrl+F5 ou par F5 ?
Aurélien Regat-Barrel
Je crois que c'est 0x0 pour le tas, 0xCCCCCCCC pour le stack.
"Thierry" a écrit dans le message de news:
Bonjour,
Dominique Vaufreydaz a écrit :
> Sinon pense aussi que lance depuis un debugguer, la memoire est > remplie avec des 0 lors de l'allocation, pas dans les autres cas, > ca peut etre une piste aussi...
C'est pas des 0xCD (int 3 il me semble) plutôt ?
-- « Willy, j'ai mangé le chat. »
Je crois que c'est 0x0 pour le tas, 0xCCCCCCCC pour le stack.
"Thierry" <yarglah@com.invalid> a écrit dans le message de news:
XnF948D7E946826Fpouletetcetc@212.27.42.69...
Bonjour,
Dominique Vaufreydaz a écrit :
> Sinon pense aussi que lance depuis un debugguer, la memoire est
> remplie avec des 0 lors de l'allocation, pas dans les autres cas,
> ca peut etre une piste aussi...
Je crois que c'est 0x0 pour le tas, 0xCCCCCCCC pour le stack.
"Thierry" a écrit dans le message de news:
Bonjour,
Dominique Vaufreydaz a écrit :
> Sinon pense aussi que lance depuis un debugguer, la memoire est > remplie avec des 0 lors de l'allocation, pas dans les autres cas, > ca peut etre une piste aussi...
C'est pas des 0xCD (int 3 il me semble) plutôt ?
-- « Willy, j'ai mangé le chat. »
Aurélien Regat-Barrel
> Bon, ca m'est deja arrive a moi... Le truc, c'est que dans visual,
c'est
aussi lui qui gere l'allocation memoire pour pouvoir savoir ce qui se
passe
et pas si tu lances ton exe... Perso, c'etait une merde de ma part
dans
le code (je ne me souviens plus laquelle mais un truc debile qui
trainait).
Tu peux voir ce genre de chose en utilisant purify, tres fort pour te montrer que tu fais des conneries meme si ca semble marche en debug !
J'avais misle doigt sur un pblm d'allocation, plantage inexpliqué sur un delete. Apres quelques tests j'en étais arrivé à penser que le new associé était à l'origine du plantage. Un de mes gars qui bosse (et a pondu) sur ce code m'a dit avoir trouvé le bug, ce serait un truc tout con. C'est pas tant le bug qui m'intriguais mais le fait que depuis VC++ il y ait un comportement différent d'une exécution simple, même en release.
Sinon pense aussi que lance depuis un debugguer, la memoire est remplie avec des 0 lors de l'allocation, pas dans les autres cas, ca peut etre une piste aussi...
J'ai pris garde de tester en release. Lundi je saurais d'où venait l'erreur.
Voila. Doms.
Merci. A+
> Bon, ca m'est deja arrive a moi... Le truc, c'est que dans visual,
c'est
aussi lui qui gere l'allocation memoire pour pouvoir savoir ce qui se
passe
et pas si tu lances ton exe... Perso, c'etait une merde de ma part
dans
le code (je ne me souviens plus laquelle mais un truc debile qui
trainait).
Tu peux voir ce genre de chose en utilisant purify, tres fort pour te
montrer que tu fais des conneries meme si ca semble marche en debug !
J'avais misle doigt sur un pblm d'allocation, plantage inexpliqué sur un
delete. Apres quelques tests j'en étais arrivé à penser que le new associé
était à l'origine du plantage. Un de mes gars qui bosse (et a pondu) sur ce
code m'a dit avoir trouvé le bug, ce serait un truc tout con. C'est pas tant
le bug qui m'intriguais mais le fait que depuis VC++ il y ait un
comportement différent d'une exécution simple, même en release.
Sinon pense aussi que lance depuis un debugguer, la memoire est
remplie avec des 0 lors de l'allocation, pas dans les autres cas,
ca peut etre une piste aussi...
J'ai pris garde de tester en release. Lundi je saurais d'où venait l'erreur.
> Bon, ca m'est deja arrive a moi... Le truc, c'est que dans visual,
c'est
aussi lui qui gere l'allocation memoire pour pouvoir savoir ce qui se
passe
et pas si tu lances ton exe... Perso, c'etait une merde de ma part
dans
le code (je ne me souviens plus laquelle mais un truc debile qui
trainait).
Tu peux voir ce genre de chose en utilisant purify, tres fort pour te montrer que tu fais des conneries meme si ca semble marche en debug !
J'avais misle doigt sur un pblm d'allocation, plantage inexpliqué sur un delete. Apres quelques tests j'en étais arrivé à penser que le new associé était à l'origine du plantage. Un de mes gars qui bosse (et a pondu) sur ce code m'a dit avoir trouvé le bug, ce serait un truc tout con. C'est pas tant le bug qui m'intriguais mais le fait que depuis VC++ il y ait un comportement différent d'une exécution simple, même en release.
Sinon pense aussi que lance depuis un debugguer, la memoire est remplie avec des 0 lors de l'allocation, pas dans les autres cas, ca peut etre une piste aussi...
J'ai pris garde de tester en release. Lundi je saurais d'où venait l'erreur.
Voila. Doms.
Merci. A+
Manuel Leclerc
Aurélien Regat-Barrel a écrit :
> Manuel Leclerc a écrit :
> Aurélien Regat-Barrel a écrit : > > > Le programme réalisé fonctionne très bien > > lancé depuis Visual Studio 7.1 mais plante > > si on le lance "à la main", que ce soit en > > release ou debug. > > Lancé depuis VS par Ctrl+F5 ou par F5 ?
Lancé via la petite flèche (donc avec debug). Je sais pas si j'ai testé sans debogage.
Quand il y a une bug dans la gestion mémoire d'une application, le bug peut passer, ou pas, innaperçu suivant le contexte d'exécution. Quand tu lances un process sous debugger, il y a quelques petites différences dans le contexte d'exécution. Je crois que ton appli est bugée, désolé.
Aurélien Regat-Barrel a écrit :
> Manuel Leclerc a écrit :
> Aurélien Regat-Barrel a écrit :
>
> > Le programme réalisé fonctionne très bien
> > lancé depuis Visual Studio 7.1 mais plante
> > si on le lance "à la main", que ce soit en
> > release ou debug.
>
> Lancé depuis VS par Ctrl+F5 ou par F5 ?
Lancé via la petite flèche (donc avec debug). Je
sais pas si j'ai testé sans debogage.
Quand il y a une bug dans la gestion mémoire d'une
application, le bug peut passer, ou pas, innaperçu
suivant le contexte d'exécution. Quand tu lances un
process sous debugger, il y a quelques petites différences
dans le contexte d'exécution. Je crois que ton appli est
bugée, désolé.
> Aurélien Regat-Barrel a écrit : > > > Le programme réalisé fonctionne très bien > > lancé depuis Visual Studio 7.1 mais plante > > si on le lance "à la main", que ce soit en > > release ou debug. > > Lancé depuis VS par Ctrl+F5 ou par F5 ?
Lancé via la petite flèche (donc avec debug). Je sais pas si j'ai testé sans debogage.
Quand il y a une bug dans la gestion mémoire d'une application, le bug peut passer, ou pas, innaperçu suivant le contexte d'exécution. Quand tu lances un process sous debugger, il y a quelques petites différences dans le contexte d'exécution. Je crois que ton appli est bugée, désolé.
Aurélien Regat-Barrel
Resalut, c'était bien un truc tout con, une maivaise taille de new. Lancé depuis VC++, il doit allouer pas mal plus que ce qui est demandé d'où pas de plantage. Sorti de là, crac boum me voilà ici.
Resalut,
c'était bien un truc tout con, une maivaise taille de new.
Lancé depuis VC++, il doit allouer pas mal plus que ce qui est demandé d'où
pas de plantage.
Sorti de là, crac boum me voilà ici.
Resalut, c'était bien un truc tout con, une maivaise taille de new. Lancé depuis VC++, il doit allouer pas mal plus que ce qui est demandé d'où pas de plantage. Sorti de là, crac boum me voilà ici.
erickissim
"Aurélien Regat-Barrel" wrote in news:4032c8d3$0$27984$:
Resalut, c'était bien un truc tout con, une maivaise taille de new. Lancé depuis VC++, il doit allouer pas mal plus que ce qui est demandé d'où pas de plantage. Sorti de là, crac boum me voilà ici.
en generale on les detecte au delete !
tu ne delete pas ?
erickissim
"Aurélien Regat-Barrel" <nospam@nospam.com> wrote in
news:4032c8d3$0$27984$626a14ce@news.free.fr:
Resalut,
c'était bien un truc tout con, une maivaise taille de new.
Lancé depuis VC++, il doit allouer pas mal plus que ce qui est demandé
d'où pas de plantage.
Sorti de là, crac boum me voilà ici.
"Aurélien Regat-Barrel" wrote in news:4032c8d3$0$27984$:
Resalut, c'était bien un truc tout con, une maivaise taille de new. Lancé depuis VC++, il doit allouer pas mal plus que ce qui est demandé d'où pas de plantage. Sorti de là, crac boum me voilà ici.
en generale on les detecte au delete !
tu ne delete pas ?
erickissim
Aurélien Regat-Barrel
> en generale on les detecte au delete !
tu ne delete pas ?
Exact, ça plantait sur le delete. J'avais identifié un pblm mais pensais qu'il venait d'ailleurs. J'avais repoussé ça à + tard, et commenté les delete vu qu'apparement les new étaient ok. Sauf que il fallait un <= au lieu d'un < dan sur for...
> en generale on les detecte au delete !
tu ne delete pas ?
Exact, ça plantait sur le delete. J'avais identifié un pblm mais pensais
qu'il venait d'ailleurs. J'avais repoussé ça à + tard, et commenté les
delete vu qu'apparement les new étaient ok. Sauf que il fallait un <= au
lieu d'un < dan sur for...
Exact, ça plantait sur le delete. J'avais identifié un pblm mais pensais qu'il venait d'ailleurs. J'avais repoussé ça à + tard, et commenté les delete vu qu'apparement les new étaient ok. Sauf que il fallait un <= au lieu d'un < dan sur for...