c++ - 如何使用 gdb 启动守护进程
问题描述
我已经看到了一些通过查询守护进程 PIDps aux
并将其附加到 gdb 的示例。
但是,我有一个机器人正在运行我编写的程序,而在某些时候,程序会冻结。我已经用尽了正常调试它的尝试。
所以我需要附加一个 gdb 实例 - 当机器人不在时。我没有选择使用 LTE,然后在它运行时反向 ssh,它没有无线。对于以太网 - 它距离我站立的地方有几公里。所以我需要:
- 用程序作为守护进程启动我的进程,这是一个要求(即当机器人重新启动时,程序启动)
- 将 GDB 实例附加到它,而无需访问机器人(无屏幕、键盘……等)
- 记录 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++编写的,使用重串口通信,使用大疆OSDK与A3飞控通信,运行在树莓派零上。
解决方案
推荐阅读
- python - Python 3 按键检测
- r - R:创建一个直方图,显示每个大陆的贸易余额分布
- python - 如何有效地将数组解码为熊猫数据框中的列
- python - 一个热门编码器是行业规范,在训练/拆分之前或之后进行编码
- java - API 服务中的数据不更新,仅在清除缓存后更新
- mongoose - 如何防止猫鼬创建集合?
- .htaccess - 将单页限制为用户代理?
- javascript - 如果文本框 2 中有相同的多个值,则 jQuery 验证文本框 1
- node.js - NodeJS 中巨大的 JSON 对象处理
- google-cloud-platform - Google Cloud Billing:如何配置发送预算通知的时间