Débugguer avec IE

Débugguer avec IE - HTML/CSS - Programmation

Marsh Posté le 24-01-2007 à 15:13:17    

Bonjour,
 
Je suis en train de programmer une appli web avec du Javascript/Ajax assez avancé derrière, et je bosse sous Firefox, entre autre pour toutes les extensions dispos (Firebug, Web Developer...). Le problème, c'est que l'appli est censée tourner sur des postes qui sont en majorité sous Internet Explorer 6 (6.0.2800.1106CO précisemment), j'ai déjà pas mal creusé pour faire l'adaptation, mais maintenant, le problème est qu'Internet Explorer plante complètement en chargeant une page bourrée de Javascript.
 
Je chercherais bien à savoir où se trouve le code Javascript incriminé pour corriger ça, mais vu le plantage systématique d'IE, impossible d'utiliser le moindre débuggueur. Il est possible que le bug soit lié à la version d'IE, en tout cas tout fonctionne parfaitement sous Firefox, mais impossible de faire de mise à jour et je dois être "IE compliant".
 
Merci d'avance.

Reply

Marsh Posté le 24-01-2007 à 15:13:17   

Reply

Marsh Posté le 24-01-2007 à 15:36:36    

Reply

Marsh Posté le 24-01-2007 à 16:17:00    

Merci, mais je suis au boulot et j'ai pas vraiment moyen d'installer Visual Studio ici...

Reply

Marsh Posté le 24-01-2007 à 17:02:57    

euh pourquoi donc?
Tu as le droit d'installer un programme mais pas visual studio ( comme c'est marqué dans le topic en lien, la version "express" gratuite doit l'inclure).
Sinon c'est aussi dans office 2000 ( toujours comme dit dans le topic).

Reply

Marsh Posté le 24-01-2007 à 17:21:18    

Disons que même les versions "Express" sont des usines à gaz, et j'ai un quota de 100mo de traffic web par semaine, donc les 400mo de l'appli, c'est un peu lourd  :sarcastic: . Mais j'essaierais quand même de le télécharger depuis chez moi.


Message édité par Moogourou le 24-01-2007 à 17:22:00
Reply

Marsh Posté le 24-01-2007 à 21:53:47    

tu as companionJS sinon http://www.ieforge.com/CompanionJS/HomePage
mais pour debugger moi je m'emmerde pas, je fais du debug à coup d'alert pour IE, mais comme les alert c'est chiant et que le  console.log c'est vachement bien avec firebug alors j'ai developpé une console JS pour IE :
http://forum.hardware.fr/hfr/Progr [...] 8661_1.htm
demo ici : http://gatsu.ftp.free.fr/html/consolelog.html (PS : tu peux reprendre le code, le modifier, j'en ai rien à branler)
Ne fonctionne bien entendu que sous IE et opera puisque sous FF yen a pas besoin

 

Ah et autrement le developper de firebug a developpé firebug light qui est une version JS de firebug
http://www.getfirebug.com/lite.html


Message édité par gatsu35 le 24-01-2007 à 21:56:21
Reply

Marsh Posté le 25-01-2007 à 10:27:49    

Merci à tous les deux.
 
Les trucs embarqués en JavaScript ne fonctionnent malheureusement pas puisqu'ils n'empêchent pas le plantage d'IE à l'ouverture de la page, idem pour CompanionJS. J'ai installé Visual Web Developper Express, mais impossible de lui attacher le processus d'IE comme indiqué dans l'autre topic. Est-ce qu'il faut plutôt un autre outil de la suite Visual Studio Express ? Ou bien le "vrai" Visual Studio ? (là ça va pas être possible malheureusement).

Reply

Marsh Posté le 25-01-2007 à 12:08:29    

Moogourou > Vu la situation, il ne te reste plus qu'une seule chose à faire : enlever tout le javascript ou une partie du javascript de ta page et ne le remettre que progressivement afin de trouver ce qui le fait planter.

Reply

Marsh Posté le 25-01-2007 à 14:29:56    

tu peux t'amuser avec ce qu'utilise le site W3Schools pour tester leurs exemple en ligne :
http://www.w3schools.com/js/tryit. [...] yjs_alert2
 
L'intérêt du truc c'est que tu peux taper du code JS et l'exécuter sans recharger la page, et du coup accéder à des objets JS déjà déclarés.

Reply

Marsh Posté le 25-01-2007 à 14:30:37    

omega2 a écrit :

Moogourou > Vu la situation, il ne te reste plus qu'une seule chose à faire : enlever tout le javascript ou une partie du javascript de ta page et ne le remettre que progressivement afin de trouver ce qui le fait planter.


Et coller des alert(1); alert(2); toutes les 2 ou 3 lignes dans le code, ça aide bien :)
Quand y'a plus d'alert c'est que la ligne d'avant à merdé :)

Reply

Marsh Posté le 25-01-2007 à 14:30:37   

Reply

Marsh Posté le 25-01-2007 à 17:00:41    

Les alert c'est cool mais là, j'ai fais dans le Javascript objet, pas une exécution séquentielle de plein de trucs, donc mettre des alert partout, c'est moyen, c'est pour ça que je cherchais un vrai débuggueur pour tracer le code juste avant le plantage d'IE, surtout que ce plantage est aléatoire : sur la même page, il lui arrive de ne pas planter, où de planter à des moments différents (ce qui se vérifie par des alert justement).

Reply

Marsh Posté le 25-01-2007 à 17:09:59    

ben au moins un JS en entrée et en sortie de chaque méthode, ça me semble pas un luxe.
 
a la limite, si tu veux pas trop de alert(), crées-toi une fonction debug(str) qui écrit dans un <div>.
l'intérêt de tracer l'entrée et la sortie de chaque méthode, c'est quand même l'assurance de rapidement retrouver quelle ligne plante. plus facile pour en trouver la raison...

Reply

Marsh Posté le 26-01-2007 à 10:56:43    

Ecrire dans un div, ça ne marchera pas puisque IE plante, donc pas possible de le lire. L'idéal serait un fichier de log, mais c'est impossible en JS, donc pour l'instant j'y vais aux alert, mais vu que le plantage n'intervient jamais au même moment...
 
J'ai installé Visual C++ Express, pas moyen de débugguer du JS avec.

Reply

Marsh Posté le 26-01-2007 à 11:21:41    

Solution bourine mais qui pourait te dépaner : si t'as un serveur avec langage dynamique, fait toi une page de log serveur et appelle là par xmlhttprequest à chaque fois que t'as quelque chôse à logger.  
 
C'est trés bourrin et ca te rajoute encore plus de code javascript, mais si tu ne veux pas enlever une partie du javascript de ta page et que tu ne veux pas non plus afficher pleins de boites d'alertes, alors il ne te reste plus que les solutions bourrines.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed