0

GDB と OpenOCD を使用して、Windows 上の STM32F4DISCOVERY ボードで簡単なプログラムをデバッグしています。これは、OpenOCD を個別に起動し、TCP/IP を使用して次のように接続すると、正常に機能します。

target remote localhost:3333

完了したらquit、通常どおり GDB をシャットダウンできます。ただし、OpenOCD を手動で開始および停止する必要はなく、「リモート パイプ」モードで GDB を使用したいと考えています。これは、私にはやや理想的な構成のように思えます。ただし、これを行うと、終了しようとするとハングするため、GDB を終了できません。

OpenOCD ログ ファイルは、GDB 接続が切断されたことを示しています。

Info : dropped 'gdb' connection

しかし、GDB は決して終了しません:

(gdb) quit
A debugging session is active.

        Inferior 1 [Remote target] will be detached.

Quit anyway? (y or n) y
Detaching from program: yagarto_sample.elf, Remote target
Ending remote debugging.

コマンドも同様にハングし、disconnect二度と戻りません。Ctrl-C でさえ GDB を起動しません。

4

1 に答える 1

2

GDBによって行われた変更に関連するOpenOCDにバグがあることが判明しました。ここに少し詳細があり、パッチが送信され、回避策が提供されています。

これをcfgに追加します。

$_TARGETNAME configure -event gdb-detach { shutdown }

この回避策をテストしましたが、機能しますが、Windowsではパイプモードが非常に遅いため、利便性は劣りますが、TCPを使用することにしました。

于 2012-12-01T19:04:57.740 に答える