Skip to content

Debugger avec Eclipse

sizanic edited this page Mar 7, 2024 · 9 revisions

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

image

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

image

Il est possible qu'on vous demande de valider le Trust Authorities de GitHub.com image

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

image

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.

image

6 - Configurer l'environnement Eclipse

Ajouter la perspective PyDev :

image

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

image

Cela ajoutera ces deux actions : image

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

Pydev Project

Modifier le fichier default.py pour déclarer le chemin des sources PyDev :

image

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.

image

Lancer KODI.

En arrivant dans votre source en naviguant dans Vstream, un premier arrêt va arriver :

image

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".

Clone this wiki locally