0

我正在使用 CDT 远程调试应用程序。应用程序构造一个源片段并将其 JIT 到内存中。为了调试,它创建内存中的 ELF/DWARF 映像并将其注册到 GDB JIT 接口,并将与 DWARF 对应的源文件写入本地(目标)文件系统。

问题是调试器前端期望在主机文件系统上找到源文件。如果我在每个 JIT 事件之后手动将源文件从目标复制到主机,那么调试器可以单步执行源文件,但这是不切实际的。让 JIT 将文件上传到主机需要 JIT 知道它正在被调试(以及从哪里调试)。有没有办法让 gdbserver 或 CDT 在需要时从目标文件系统检索源文件?

我创建了传递给 GDB JIT 接口的 ELF/DWARF 图像,因此如果有帮助的话,我可以使用替代路径来描述源文件位置。

4

1 回答 1

0

gdbserver 协议已经支持获取远程文件

诀窍是让 GDB 自动发出 fetch 命令以响应 JIT 事件。使用 Python 脚本很容易做到这一点。不幸的是,JIT 事件似乎没有暴露给 Python

我建议在GDB bugzilla中提交功能请求。

于 2012-07-06T21:23:23.930 回答