Pages : 1
#1 Le 22/08/2008, à 19:15
- alexduf
une JVM qui fume la moquette ?
Bonjour,
Sur mon lieu de travail, j'utilise Eclipse 3.1, avec une JVM 1.4.2.7
Alors que j'étais en débug sur quelque chose qui ressemble au bout de code ci dessous, j'ai assisté à quelque chose de curieux.
public int maFonction() {
int index = 1;
maSousFonction(index);
}
public void mSousFonction(int param) {
if (conditionQuelconque) {
// traitement sur param
}
}
Donc en debug je constate bien que index est égal à 1, de sa déclaration jusqu'avant l'appel de maSousFonction. Une fois dans maSousFonction, la valeur de param devient complètement aléatoire !! (-5789456, 783542, 54, etc...)
J'ai revérifé mon code (que je n'ai évidement pas sous la main) , relancé mon serveur d'application (weblogic), relancé eclipse, relancé ma machine, mis des traces dans une log, relancé en mode classique (donc pas debug), pris une pause, pris un café, repris une pause, invoqué les dieux du java en sacrifiant une poule, et re-testé.
Rien à faire.
Quelqu'un a-t-il déjà rencontré un problème de ce genre ?
Je commence à penser à un matos défaillant, ou surchauffé.
Si ce n'est pas le cas je compte bien me rendre à l'asile le plus proche de chez moi.
Dernière modification par alexduf (Le 22/08/2008, à 19:19)
Hors ligne
#2 Le 23/08/2008, à 11:50
- nalian34
Re : une JVM qui fume la moquette ?
si j'ai bien compris pendant que tu éxécutes le code maSousFonction() tu regardes quelle est la valeur de la variable index et tu trouves des valeurs bizarres? une fois que tu sors de la méthode maSousFonction() est ce que index est égal à 1 ?
Dernière modification par anirelles (Le 23/08/2008, à 11:51)
Hors ligne
#3 Le 23/08/2008, à 12:23
- alexduf
Re : une JVM qui fume la moquette ?
quand je ressort de la "maSousFonction" oui, index est égal à 1.
c'est dans "maSousFonction", index que j'ai passé en paramètre (qui s'appelle param), prend une valeur incohérente.
Hors ligne
#4 Le 23/08/2008, à 12:34
- nalian34
Re : une JVM qui fume la moquette ?
c'est vraiment bizarre, je suppose que tu vérifies la valeur de "param" tout de suite en entrant dans maSousFonction().
public int maFonction() {
int index = 1;
System.out.printl("index="+index);
maSousFonction(index);
}
public void mSousFonction(int param) {
System.out.printl("param="+param);
if (conditionQuelconque) {
// traitement sur param
}
}
moi j'essaierais ce bout de code, si effectivement index != param il faut implorer les dieux du java
Hors ligne
#5 Le 23/08/2008, à 12:39
- nalian34
Re : une JVM qui fume la moquette ?
si tu reproduis le problème à chaque fois, essaie de fournir le code, comme ça on peut essayer de notre côté
Hors ligne
#6 Le 23/08/2008, à 12:41
- alexduf
Re : une JVM qui fume la moquette ?
moi j'essaierais ce bout de code, si effectivement index != param il faut implorer les dieux du java
c'est ce que j'ai fais.
index=1
param=785478
d'où mon incompréhension... Pourtant je fais du java depuis un bon bout de temps, et j'en suis pas à mon premier développement. C'est la première fois que je vois ça.
Ca doit être parce que le poste est sous windows.
Hors ligne
#7 Le 23/08/2008, à 12:56
- nalian34
Re : une JVM qui fume la moquette ?
et si tu essaie ton programme sans le lancer à partir d'eclipse?
Hors ligne
#8 Le 23/08/2008, à 12:58
- alexduf
Re : une JVM qui fume la moquette ?
ça j'ai pas essayé, il faudra attendre lundi pour ça
Hors ligne
#9 Le 25/08/2008, à 10:27
- alexduf
Re : une JVM qui fume la moquette ?
je me corrige, mes traces m'affichent des valeurs cohérentes. C'est donc le debugger d'eclipse qui perd les pédales.
C'est plus rassurant déjà. (Et ça permet de continuer à bosser)
Hors ligne
#10 Le 25/08/2008, à 19:15
- nalian34
Re : une JVM qui fume la moquette ?
cool
j'utilise très rarement le debugger, je préfère mettre des traces
Hors ligne