0

背景

我目前正在尝试在运行Ubuntu MATE 16.04 LTS的Rapsberry Pi上使用ROS构建自主无人机。解决目前识别红色圆圈的计算机视觉问题。

具体问题

我不断收到我在这个问题中遇到的错误。为了帮助我解决这个问题,我决定使用 gdb。但是,该命令rosrun --prefix 'gdb run --args' zlab_drone vdstab似乎对我不起作用。zlab_drone是包vdstab的名称,也是我要运行的可执行文件的名称。由于这是在 ROS 环境中,我从这里获取了语法,并使用了这个问题中的建议。

当我调用此命令时,即使使用tui,我也会得到 aSIGSEGV并且当我在其list内部调用时gdb,程序不会停留在特定点并继续列出不同的行,直到超出范围。这是一个相当奇怪的问题。

我想,通过使用不同的命令,我设法让它在没有这个问题的情况下工作。我只是不记得上次我是如何让它工作的。

4

2 回答 2

0

好吧,在你提到的链接中,它清楚地表明你应该使用:

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  

因此,看起来您确实错过了@ ks1322在评论中建议的 -ex 或者只是键入run来启动调试过程。

于 2017-02-15T14:33:34.633 回答
0

我发现了这个仅与 Raspberry Pi 相关的专有错误。正如 Peter Bennet 所引用的,基本上解决方案包括:

有一种解决方法。启动程序,然后从另一个命令提示符或从 ssh 远程登录,使用 gdp -p xxxxx 其中 xxxxx 是进程号。这可以正常工作而不会崩溃。如果您需要在从另一个命令提示符进入之前调试发生的事情,请在程序中添加一个在 main 开始时停止进程的命令,例如调用gets,它将等待您在继续之前按回车.

于 2017-02-20T04:30:36.253 回答