Я пытаюсь отладить мой код ros в gdb, однако, когда я запускаю узел в gdb, он всегда дает мне:
Starting program: /home/uav/catkin_ws/devel/lib/my_package/my_node
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-
gnu/libthread_db.so.1".
[New Thread 0x7ffff13b9700 (LWP 28089)]
[New Thread 0x7ffff0bb8700 (LWP 28090)]
[New Thread 0x7fffebfff700 (LWP 28091)]
[New Thread 0x7fffeb7fe700 (LWP 28096)]
[New Thread 0x7fffeaffd700 (LWP 28098)]
[New Thread 0x7fffea7fc700 (LWP 28121)]
и зависает навсегда.Я не видел эту проблему раньше и понятия не имею, почему она всегда запускается в многопоточном режиме.Моя основная функция выглядит следующим образом:
int main(int argc, char** argv)
{
ros::init(argc, argv, "my_node");
ros::NodeHandle nodeHandle("~");
ros::Rate rate(10);
while (ros::ok()) {
// Do Something
ros::spinOnce();
rate.sleep();
}
return 0;
}
Как я могу решить эту проблему?Я думаю, что должен сделать свой узел однопотоковой версией и отладить его, как я должен это сделать?