-
Notifications
You must be signed in to change notification settings - Fork 275
Debugger avec Eclipse
Inspiré de ce tuto : https://kodi.wiki/view/HOW-TO:Debug_Python_Scripts_with_Eclipse
1 - Installer Python Télécharger la dernière version de python 2.7 : https://www.python.org/downloads/ A installer où vous voulez.
2 - Installer Eclipse http://www.eclipse.org/downloads/
Au lancement, saisir un chemin pour votre espace de travail (Workspace).
Paramétrer l'encodage des caractères, par le menu Window, Préference, General, Workspace Text file Encoding : UTF-8
3 - Installer PyDev dans Eclipse
Aller dans le menu Help -> Install new software
Saisir l'adresse
http://pydev.org/updates
Cocher 'PyDev' puis Next jusqu'à Finish
Il est possible qu'on vous demande de valider le Trust Authorities de GitHub.com
4 - Récupérer les sources PySrc A REFAIRE APRES LES MISES A JOUR DE KODI (De 17.6 à 18.4 ou de 18.5 à 18.6 par exemple)
SPECIAL WINDOWS
Copier le dossier PySrc, depuis Pydev dans l'installation d'eclipse, vers le dossier \python\lib\ de KODI.
Selon la version d'Eclipse, peut se trouver là :
C:\Users\UserName.p2\pool\plugins\org.python.pydev.core_XX.Y.Z.nnnnnnnnn\pysrc
INIT
Créer un nouveau fichier vide à la racine de pysrc :
__init__.py
C:\Program Files (x86)\Kodi\system\Python\Lib\pysrc\__init__.py
SPECIAL LINUX
- Installer l'addon pydevd dans Kodi via https://github.com/powlo/script.module.pydevd.
- Une fois l'installation de l'addon effectuée, copier le contenu du répertoire pysrc, qui se trouve dans votre installation du pydev effectuée via éclipse, dans le repertoire lib de l'addon ajouté dans Kodi.
Par exemple sur cette installation le repertoire pysrc se situe dans le home directory ici :
XXXXXXXX:~$ ls ~/.eclipse/360744286_linux_gtk_x86_64/plugins/org.python.pydev.core_7.5.0.202001101138/pysrc/
build_tools pycompletionserver.py pydev_coverage.py pydevd_file_utils.pyc pydevd_tracing.pyc pydev_run_in_console.py setup_cython.py
conftest.py pydev_app_engine_debug_startup.py pydevd_attach_to_process _pydevd_frame_eval _pydev_imps pydev_sitecustomize setup.py
interpreterInfo.py _pydev_bundle _pydevd_bundle pydevd_plugins pydev_ipython pytest.ini stubs
LICENSE pydevconsole.py pydevd_concurrency_analyser pydevd.py pydev_pysrc.py README.rst third_party
MANIFEST.in pydevconsole.pyc pydevd_file_utils.py pydevd_tracing.py _pydev_runfiles runfiles.py
L'addon dans Kodi se situe ici :
~/.kodi/addons/script.module.pydevd/
Voici la commande permettant d'effectuer la copie avec les éléments ci-dessus :
cp -rp ~/.eclipse/360744286_linux_gtk_x86_64/plugins/org.python.pydev.core_7.5.0.202001101138/pysrc/* ~/.kodi/addons/script.module.pydevd/lib/
5 - Chemin de python dans Eclipse Par le menu Window, Preferences, PyDev, Interpreters, Python Interpreter. Utiliser le bouton : Browse for Python, et aller chercher votre installation de Python.
6 - Configurer l'environnement Eclipse
Ajouter la perspective PyDev :
Ajout des boutons pour démarrer / arrêter le debug Par le menu Window, Perspective, Custom perspective Dans l'onglet Action Set Availability, cochez PyDev Debug
Cela ajoutera ces deux actions :
Ajouter les fenêtres intéressantes, par le menu Window, Show view, Other ...
General / Console
Debug / Variables
Debug / Debug
Debug / Breakpoints
7 - Projet VStream dans Eclipse
File, New, project, PyDev, PyDev Project
Saisir un nom de projet (ex : VSTREAM). Sélectionner comme directory le chemin complet vers l'addon. Et Finish
Modifier le fichier default.py pour déclarer le chemin des sources PyDev :
8 - Debugger Vstream
Ce morceau de code vous permet de mettre en pause le fichier que vous voulez debugguer :
# Mettre True pour activer le debug
DEBUG = False
if DEBUG:
import sys # pydevd module need to be copied in Kodi\system\python\Lib\pysrc
sys.path.append('H:\Program Files\Kodi\system\Python\Lib\pysrc')
try:
import pysrc.pydevd as pydevd
pydevd.settrace('localhost', stdoutToServer=True, stderrToServer=True)
except ImportError:
try:
import pydevd # with the addon script.module.pydevd, only use `import pydevd`
pydevd.settrace('localhost', stdoutToServer=True, stderrToServer=True)
except ImportError:
sys.stderr.write("Error: " + "You must add org.python.pydev.debug.pysrc to your PYTHONPATH.")
Copier ce code en haut de votre fichier et modifier la valeur :
DEBUG = True
Ce code existe déjà dans le fichier default.py. Si vous activer le DEBUG dans le fichier default.py, cela vous permettra de debugger n'importe quelle source.
Appuyer ensuite sur le petit cafard vert (CELUI AVEC LE 'p'), le Debug Server doit démarrer.
Lancer KODI.
En arrivant dans votre source en naviguant dans Vstream, un premier arrêt va arriver :
Utiliser le raccourci F8 pour le libérer.
Pour ajouter des points d'arret, double-cliquez sur le numéro de ligne. F6 pour avancer ligne par ligne sans entrer dans les méthodes. F5 pour entrer dans le code de la méthode de la ligne en cours.. F7 pour exécuter le code de la méthode en cours et s'arreter en ressortant. F8 pour exécuter le code (jusqu'au prochain point d'arret s'il y en a)
9 - Arreter le Debug
Arrêter le Python Server ne suffit pas, il faut remettre :
DEBUG = False
10 - ASTUCES
Astuce 1 - Il est possible d'activer le DEBUG à tout moment lorsque que KODI est déjà lancé. Ainsi, il est plus rapide de lancer KODI sans le DEBUG, naviguer jusqu'au lien à tester, et activer DEBUG=True juste avant le dernier clic.
Astuce 2 - Au bout d'un certain temps, d'un certain nombre d’arrêts sur les points d’arrêt, le "debug server" commence à être fatigué (met du temps à répondre). En laissant DEBUG=True et KODI lancé, vous arrêtez le server et vous le relancez par les deux boutons pydev "Stop the debugger server" et "start the pydev server".
Astuce 3 - Eclipse réagit mal lorsqu'on supprime un point d’arrêt alors que le code est arrêté. La solution est alors de désactiver le point d'arrêt plutôt que de le supprimer. Avec un clic-droit sur le point d'arrêt : "Disable BreakPoint". On le réactive de la même façon avec "Enable BreakPoint".