【发布时间】:2012-03-15 22:04:30
【问题描述】:
我有一个 C++ 应用程序,它通过 USB 串行链路连接到微处理器(类似于 Arduino)。我使用termios.h 作为我的串行包装器。
我在 Mac OS X 10.7.3 上使用 cgdb 进行调试。
当我:
cgdb build/my-process- 设置一些断点等,做一些调试
- 查找错误,或尝试在
cgdb中使用kill退出仍在运行的进程
进程挂起。 cgdb 拒绝终止进程 - 只是坐在那里。我相当确定这是因为如果我在应用程序的中途使用kill,我永远不会释放我正在通过它访问微控制器的/dev/ttyUSB 设备。我不确定某些东西是否被锁定并且永远不会解锁,但cgdb 永远不会退出。
我试过了:
- 基本中断:Ctrl+C
-
ps aux | grep 'my-process',kill -9 [pid]`。 -
ps aux | grep cgdb,kill -9 [pid]。 -
sudo以上版本。
没有任何东西会杀死cgdb 或其中运行的进程。
如果我拔下 USB 电缆(终止与微处理器的连接),(我认为这可能会使崩溃的进程崩溃),我开始看到大约 50% 的可用 CPU 正在使用(不确定是什么),并且一切都锁定了。我没有设法使应用程序崩溃。
您如何:(a) 干净地退出 不 在调试进程的过程中锁定 cgdb 或 gdb 的所有内容,或 (b) 杀死 / 干净地(虽然“干净地”只是锦上添花)停止在您调试时停止的进程 没有 响应 @987654338 @ 没有重启?
【问题讨论】: