如何使用" openocd和JTAG板设置LLDB"

时间:2016-03-29 14:33:01

标签: arm embedded lldb cortex-m openocd

我试图将lldb与openocd / jtag板一起使用,但我遇到了麻烦。 我已经使用openocd和gdb在L0 STMicroelectronics板上开发,它运行得很好。 现在我想要与lldb相同。

我在LLDB主机方面这样做

$ lldb bin/token.elf 
(lldb) target create "bin/token.elf"
Current executable set to 'bin/token.elf' (arm).
(lldb) platform select remote-gdb-server
  Platform: remote-gdb-server
  Connected: no
(lldb) platform connect connect://localhost:5557
  Platform: remote-gdb-server
  Hostname: (null)
  Connected: yes
(lldb) target list 
Current targets:
* target #0: /home/cme/Projects/Tacos/ledger/trunk/se/build/st31_bolos/bin/token.elf ( arch=arm-unknown-unknown, platform=host )

在openocd / GDB服务器端,我正确地看到了"信息:接受' gdb' tcp / 5557"

上的连接

但现在我还没有找到如何继续:

(lldb) process launch 
error: process launch failed: Child exec failed.

我也试过"处理继续",但是lldb抱怨没有进程

使用gdb,该进程被认为已经在运行,我使用reset / continue命令,从不运行'运行'命令。

有人知道如何将lldb与openocd / jtag gdb-server一起使用吗?

感谢您的帮助

C / M

1 个答案:

答案 0 :(得分:1)

从我们正在研究的内容来看,无法在不编写额外代码的情况下使用lldb调试远程(裸机!)目标。

对于基本功能,lldb需要识别至少一个线程上下文。 gdb也是如此。但是在gdb中有一些存根实现伪造远程系统上的现有线程。 [1]

来自lldb邮件列表[2]上的对话,答案汇编为: 我们必须编写一些(python)代码来获取使用lldb的远程裸机。

[1] https://github.com/bminor/binutils-gdb/blob/28170b88cc8b40fdea2b065dafe6e1872a47ee4e/gdb/remote.c#L1808

[2] http://comments.gmane.org/gmane.comp.debugging.lldb.devel/3405