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
- Dans VSCode, ouvrez le dossier contenant le package que vous souhaitez déboguer. Un fichier
CMakeLists.txtdevrait se trouver à sa racine. - Dans la palette de commandes (CTRL+SHIFT+P), cherchez
CMake : Configureet exécutez. - De la même façon, faites
CMake : Build. - Allez ensuite dans l’onglet
Déboguerde VSCode et cliquez sur l’engrenage à droite du boutonDéboguer. Sélectionnez l’option C++ (GDB/LLDB).
Si vous désirez lancer le node et le déboguer.
- Dans le fichier
launch.json, présent dans le dossier caché.vscodeà la racine du package, complétez le champprogramdans la sectionC++ Launch. Généralement le path devrait correspondre à"${workspaceRoot}/build/devel/lib/(nom du package)/(nom du node à déboguer)". - Dans un terminal, lancez un roscore et les autres nodes nécessaires à l’exécution de votre programme.
- Vous pouvez maintenant cliquer sur le bouton
Débogueret résoudre votre problème!
Si vous désirez vous attacher à un node en cours d’exécution.
- 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)/. - Dans le fichier
launch.json, présent dans le dossier caché.vscodeà la racine du package, complétez le champprogramdans la sectionC++ 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)". - Dans un terminal, lancez un roscore et tous les nodes nécessaires à l’exécution de votre programme incluant celui à déboguer.
- 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.