我正在远程调试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停止远程而不是断开连接?
答案 0 :(得分:1)
问题是OpenOCD过于尖锐。我遇到了0.6.1的问题,但是OpenOCD的0.7.0版本运行得很好。