USBシリアルリンクを介してマイクロプロセッサに接続するC++アプリケーションがあります(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',
kill -9 [pid]`.ps aux | grep cgdb
、kill -9 [pid]
。sudo
上記のバージョン。
どちらかcgdb
、またはその中で実行されているプロセスを強制終了するものはありません。
USB ケーブル (マイクロプロセッサへの接続を終了) を取り外すと (クラッシュしたプロセスがクラッシュする可能性があると思いました)、使用可能な CPU が 50% まで使用されているのが見え始め (何が原因かわかりません)、すべてがロックされます。アプリケーションをクラッシュさせることはできません。
( a) プロセスのデバッグ中またはデバッグ中にすべてをロックせずに正常に終了するか、または (b)プロセスを完全に (「完全に」とはケーキのアイシングに過ぎませんが) 停止している間に停止したプロセスを停止します。再起動せずに応答しないデバッグをしていますか?cgdb
gdb
kill -9