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