每当我按下control + c时,远程GDB都会断开连接

时间:2015-07-18 14:47:15

标签: gdb embedded remote-debugging openocd

我正在远程调试Stellaris Launchpad。我使用OpenOCD连接到stellaris,然后将GDB连接到openOCD提供的服务器。我使用Open On-Chip Debugger 0.10.0-dev-00002-g79fdeb3(2015-07-09-23:28)。 GDB是arm-gcc-none-eabi,即4_9-2015q1版本。 我像这样调用openOCD:

/usr/local/bin/openocd --file \
/usr/local/share/openocd/scripts/board/ek-lm4f120xl.cfg \
>> openocdLog.txt 2>&1 &

然后像这样的GDB:

arm-none-eabi-gdb proj//debug/exec -x gdb//gdb.script

gdb / gdb.script包含:

set remotetimeout 10000
target extended-remote :3333
monitor reset halt
load
monitor reset init

问题是每当我点击control + c GDB断开连接时。通常这会停止远程,但GDB只是断开连接:

(gdb) cont
Continuing.
^CError detected on fd 6
Remote communication error.  Target disconnected.: Interrupted system call.
(gdb) 

OpenOCD有以下几点要说,这是GDB启动时的那个:

Warn : keep_alive() was not invoked in the 1000ms timelimit. GDB alive packet not sent! (1258). Workaround: increase "set remotetimeout" in GDB

这很奇怪,考虑到gdb / gdb.script文件强制将remotetimeout强加到一个非常大的数字。

当按下control + c时,openOCD说:

Debug: 2602 5089 hla_interface.c:119 hl_interface_quit(): hl_interface_quit

那么,我该如何解决这个问题呢?当按下control + c时,如何使GDB停止远程而不是断开连接?

1 个答案:

答案 0 :(得分:1)

问题是OpenOCD过于尖锐。我遇到了0.6.1的问题,但是OpenOCD的0.7.0版本运行得很好。