我正在使用 CDT 远程调试应用程序。应用程序构造一个源片段并将其 JIT 到内存中。为了调试,它创建内存中的 ELF/DWARF 映像并将其注册到 GDB JIT 接口,并将与 DWARF 对应的源文件写入本地(目标)文件系统。
问题是调试器前端期望在主机文件系统上找到源文件。如果我在每个 JIT 事件之后手动将源文件从目标复制到主机,那么调试器可以单步执行源文件,但这是不切实际的。让 JIT 将文件上传到主机需要 JIT 知道它正在被调试(以及从哪里调试)。有没有办法让 gdbserver 或 CDT 在需要时从目标文件系统检索源文件?
我创建了传递给 GDB JIT 接口的 ELF/DWARF 图像,因此如果有帮助的话,我可以使用替代路径来描述源文件位置。