Maison  >  Article  >  Java  >  Comment résoudre le problème selon lequel les valeurs des variables ne peuvent pas être affichées lors du débogage du code source du JDK ?

Comment résoudre le problème selon lequel les valeurs des variables ne peuvent pas être affichées lors du débogage du code source du JDK ?

零下一度
零下一度original
2017-06-26 14:31:351546parcourir

Il y a quelques jours, je voulais jeter un œil au code source du JDK en mode débogage, mais lorsque je suis entré en mode débogage, j'ai découvert que je ne pouvais pas du tout voir les valeurs des variables dans les méthodes. Pourquoi? Dans la version actuelle du JDK, les informations de débogage sont supprimées après la compilation. La solution est de compiler ces classes avec les informations de débogage et d'utiliser la commande : javac -g

Après avoir vérifié quelques informations pertinentes, je mettrai la solution ci-dessous

  1. Créez les répertoires jdk7_src et jdk_debug dans le répertoire racine de d:.

  2. Recherchez le fichier src.zip dans le répertoire JDK_HOME et extrayez les fichiers qu'il contient dans le jdk7_src répertoire Téléchargez, puis supprimez les autres répertoires sauf java, javax, org dans le répertoire décompressé.

  3. Mettez rt.jar sous JDK_HOMEjrelib dans votre répertoire de travail, c'est-à-dire sous le répertoire racine de d: (c'est juste pour commodité Pas besoin de spécifier un grand nombre de noms de fichiers sur la ligne de commande).

  4. Exécutez la commande dir /B /S /X jdk7_src*.java > filelist.txt pour créer une liste de fichiers Java qui doivent être compilés pour compilation de la commande javac Fichier source d'entrée, description des paramètres liés à la commande dir, /B : ne génère pas d'informations supplémentaires sur le fichier (pas d'informations sur le titre ni de résumé), /S : affiche le répertoire spécifié et tous les sous-répertoires Fichiers dans /X : sont affichés sous forme de noms courts générés par des noms de fichiers non 8.3. Le format est le format /N, avec le nom court inséré devant le nom long. S'il n'y a pas de nom court, un espace s'affiche à sa place.

  5. Exécuter javac -J-Xms16m -J-Xmx1024m -sourcepath d:jdk7_src -cp d:rt.jar -d d:jdk_debug -g @filelist.txt >> ; log.txt 2>&1 Le fichier compilé sera placé dans le dossier jdk_debug, et le journal généré par la compilation sera enregistré dans le fichier log.txt. Vous verrez de nombreux avertissements dans le fichier journal, mais aucun message d'erreur.

  6. Entrez dans le répertoire jdk_debug et exécutez la commande jar cf0 rt_debug.jar *, et emballez le fichier compilé dans rt_debug. potPack.

  7. Placez le package jar nouvellement généré dans JDK_HOMEjrelibendorsed (s'il n'y a pas de dossier d'approbation, créez-le manuellement).

 Remarque : JDK_HOME représente le chemin d'installation du JDK. Toutes les commandes de cet article sont exécutées sous d: et ses sous-répertoires.

Pour faire simple, vous pouvez également mettre la version de débogage de JDK7 rt_debug.jar que j'ai fournie ci-dessous dans le dossier approuvé.

Références

  • la source jdk de débogage ne peut pas regarder la variable de quoi il s'agit  --stackoverflow

  • Mécanisme de remplacement des normes approuvées par Java​​​​​​​​​​​​​​​

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn