如何使用gdb启动守护程序

时间:2019-06-21 17:43:21

标签: c++ debugging gdb freeze

我已经看到一些通过ps aux查询守护程序PID,然后将其附加到gdb的示例。

但是,我有一个机器人正在运行由我编写的程序,而在某些时候,该程序处于冻结状态。我已经尽力尝试正常调试它。

因此,我需要将gdb实例附加到其中-机器人不在时。我没有选择使用LTE,然后反向ssh运行的功能,它没有无线功能。对于以太网-距我所处的位置最多几公里。所以我需要:

  1. 使用程序作为守护程序启动我的进程,这是一项要求(即,当机器人重新启动时,程序将启动)
  2. 将GDB实例附加到该实例,而无需访问机械手(没有屏幕,键盘等)
  3. 记录GDB的所有输出

考虑到这一点,我已经尝试在守护程序文件myservice.service中

ExecStart="gdb --exec=/path/to/file /path/to/inputfile.txt --eval-command=run" &

这不起作用。结果是(在systemctl status myservice之后,我们看到:)

myservice.service - my service
Loaded: error (Reason: Invalid argument)
Active: inactive (dead

所以,任何帮助将不胜感激。谢谢。

PS:我的服务是用C ++编写的,使用大量的串行通信,使用DJI OSDK与A3飞行控制器进行通信,并在树莓派零位上运行。

0 个答案:

没有答案