2012-11-21 46 views
0

我正在使用GDB和OpenOCD來調試Windows上我的STM32F4DISCOVERY板上的簡單程序。分別啓動OpenOCD的時候,使用TCP/IP連接到它這工作得很好,像這樣的東西:爲什麼在遠程管道模式下使用OpenOCD時GDB掛起?

target remote localhost:3333 

當我做,我可以用quit正常關機GDB。但是,我希望在「遠程管道」模式下使用GDB,而不需要手動啓動和停止OpenOCD。這對我來說似乎是一個理想的配置。但是,當我這樣做時,我不能退出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命令同樣掛起,從來沒有returing。甚至連Ctrl-C都不會喚醒GDB。

回答

0

事實證明,OpenOCD中存在一個與GDB所做更改相關的錯誤。細節的一點是herepatch已經提交,並提供了一種解決辦法:

添加到您的CFG:

$_TARGETNAME configure -event gdb-detach { shutdown } 

我測試了此解決方案,並且它的工作,但在最後,管道模式在Windows上非常慢,我選擇使用TCP,儘管它不太方便。