documentation

View project on GitHub

Déboguer un node ROS avec Visual Studio Code.

Ce tutoriel présente comment déboguer n’importe quel node ROS avec Visual Studio Code. Notez bien qu’il est possible de déboguer avec d’autres IDE tels que CLion.

Révisions

Auteur: Pierre-Yves
Date : 30 août 2016
Idiot-proofé par : _____

Préalables

Tout d’abord, VSCode est disponible gratuitement ici.
Pour compiler un package vous devez ajouter l’extension CMake Tools qui est disponible dans le Marketplace de VSCode. Évidemment, vous devez aussi avoir l’extension C/C++ qui permet le support de ce langage.

Étapes

  1. Dans VSCode, ouvrez le dossier contenant le package que vous souhaitez déboguer. Un fichier CMakeLists.txt devrait se trouver à sa racine.
  2. Dans la palette de commandes (CTRL+SHIFT+P), cherchez CMake : Configure et exécutez.
  3. De la même façon, faites CMake : Build.
  4. Allez ensuite dans l’onglet Déboguer de VSCode et cliquez sur l’engrenage à droite du bouton Déboguer. Sélectionnez l’option C++ (GDB/LLDB).

Si vous désirez lancer le node et le déboguer.

  1. Dans le fichier launch.json, présent dans le dossier caché .vscode à la racine du package, complétez le champ program dans la section C++ Launch. Généralement le path devrait correspondre à "${workspaceRoot}/build/devel/lib/(nom du package)/(nom du node à déboguer)".
  2. Dans un terminal, lancez un roscore et les autres nodes nécessaires à l’exécution de votre programme.
  3. Vous pouvez maintenant cliquer sur le bouton Déboguer et résoudre votre problème!

Si vous désirez vous attacher à un node en cours d’exécution.

  1. Copiez l’exécutable généré précédemment dans /build/devel/lib/(nom du package)/ et remplacez l’exécutable correspondant dans votre catkin workspace par celui-ci. (L’exécutable est habituellement dans (votre catkin workspace)/devel/lib/(nom du package)/.
  2. Dans le fichier launch.json, présent dans le dossier caché .vscode à la racine du package, complétez le champ program dans la section C++ Attach. Généralement le path devrait correspondre à "${workspaceRoot}/(chemin vers la racine de votre catkin workspace)/devel/lib/(nom du package)/(nom du node à déboguer)".
  3. Dans un terminal, lancez un roscore et tous les nodes nécessaires à l’exécution de votre programme incluant celui à déboguer.
  4. Vous pouvez maintenant cliquer sur le bouton Déboguer. Cherchez et choissisez l’exécutable correspondant au nom de votre node. Un terminal s’ouvrira pour vous demander la permission de s’attacher au programme, acceptez. Vous pouvez maintenant résoudre votre problème.

Amusez-vous! :)