背景
我目前正在尝试在我的 rapsberry pi 上使用 ros 构建自动无人机,该无人机正在运行 ubuntu mate 16.04 lts 。截至目前,解决了识别红色圈子的计算机视觉问题。
特定问题
我不断收到我在这个问题中遇到的错误。为了帮助我解决这个问题,我决定使用GDB。但是,命令rosrun --prefix 'gdb run --args' zlab_drone vdstab
似乎对我不起作用。zlab_drone
是软件包的名称,vdstab
是我要运行的可执行文件的名称。由于这是在ROS环境中,因此我从这里抓住了语法,并在此问题中使用了这些建议。
当我调用此命令时,即使使用tui
,我会得到SIGSEGV
,并且当我在gdb
本身中调用list
时,该程序不会停留在特定点,并且会在其范围内列出不同的线路。这是一个很奇怪的问题。
我认为,我设法通过使用其他命令来使它起作用而没有这个问题。我只是不记得上次使它起作用了。
好吧,在您提到的链接中,它明显使用:
:launch-prefix="xterm -e gdb --args" : run your node in a gdb in a separate xterm window, manually type run to start it
或:
launch-prefix="gdb -ex run --args" : run your node in gdb in the same xterm as your launch without having to type run to start it
因此,看起来您错过了 -ex 作为 @ks1322在注释中建议使用的 @ks1322,或者只是键入 run 来启动调试过程。
我发现了与Raspberry Pi仅有关的独家错误。基本上,该解决方案涉及,如Peter Bennet所引用:
有解决方法。启动程序,然后从另一个命令开始 提示或从SSH远程登录中,使用GDP -P XXXXX其中xxxxx是 过程编号。这可以在没有崩溃的情况下起作用。如果您需要调试 在您可以从另一个命令中进入之前发生的事情 提示,将停止进程停止进程的命令添加到程序 主要的开始,例如打电话给获得的电话,这将等待您 在继续之前按Enter。