2017-01-19 3 views
1

J'utiliseUncaught exception 'de ErrorException' dans xdebug: // debug-eval

Intellij 14.1.4, PHP v5.5.38, Xdebug v2.2.3

J'ai fait un changement qui a été la définition d'un php $ GLOBALS [de 'CRED_TYPE'] variable. J'ai supprimé cette variable plus tard. J'ai vérifié partout et cette variable n'est plus définie nulle part. Ce n'est tout simplement pas dans mon code.

Mais pour une raison quelconque, je reçois toujours le problème suivant

(!) Fatal error: Uncaught exception 'ErrorException' with message 'Undefined index: CRED_TYPE' in xdebug://debug-eval on line 1 (!) ErrorException: Undefined index: CRED_TYPE in xdebug://debug-eval on line 1

J'ai même recloné l'ensemble du projet, mais chaque fois que j'essaie de déboguer obtenir juste perdu (plantage) et parfois j'obtenir cette exception. Cela ne devrait pas être là, car il n'y a pas un tel code, mais pourquoi je l'obtiens.

Il n'existe aucune traceback dans le fichier. Je ne sais pas quoi faire, des idées s'il vous plaît?

+0

Pourrait-il être mis en cache quelque part? – RiggsFolly

+2

Vérifiez le cadre Watches de la vue PHP Debugger dans l'EDI. Vous avez probablement ajouté '$ GLOBALS ['CRED_TYPE']' dans le passé et maintenant l'EDI demande son évaluation chaque fois que le débogueur s'arrête. – axiac

+0

Oh mec .... !!!! quelle erreur stupide à faire. C'était dans les montres oui! Merci beaucoup. Tu m'as sauvé la tête d'avoir explosé. – Shaonline

Répondre

1

La clé pour décoder le message d'erreur est l'emplacement du code défaillant: xdebug://debug-eval on line 1. Ce n'est pas un fichier mais un code qui est dynamiquement généré et évalué par le débogueur.

Chaque fois que le script est arrêté dans le débogueur, le client de débogage (PhpStorm, NetBeans, etc.) envoie à l'xdebug extension PHP (le composant serveur de débogage) une commande eval() pour chaque expression regardé. Ce code s'exécute dans la portée actuelle du code (où le script est arrêté).

Comme il n'y a pas de variable globale $CRED_TYPE, l'évaluation de l'expression $GLOBALS['CRED_TYPE'] produit un avis (« Undefined index: CRED_TYPE ' ») et le gestionnaire d'erreur personnalisé défini par votre projet génère et jette un ErrorException de celui-ci. L'exception n'est pas interceptée et le script se termine anormalement.

Assurez-vous que la liste des expressions dans la fenêtre Espion de votre débogueur ne contient pas d'expressions qui ne sont pas valides dans la portée du code où vous placez un point d'arrêt.