在 docker 映像中运行 gdb 时我遇到了一些麻烦,我不确定是什么导致了问题,因为我是 gdb 和 docker 的新手。
背景
我正在尝试为在ev3dev上运行的 Lego EV3 编写一个 c++ 程序。为了编译它,我在我的 Windows 机器上使用 ev3dev 映像设置了 docker,并且能够在该映像中成功构建,将二进制文件传输到 EV3 并在那里执行它。在我需要开始(远程)调试之前,这一切都很好。我的计划是使用该程序在 EV3 上启动一个 gdbserver,并在我的 Windows 机器的 docker 容器内打开一个 gdb 会话并连接到 EV3 gdbserver。在我修复了远程调试时的第一个错误之后——我需要在我的 Windows 机器上使用 gdb-multiarch——我遇到了更多我也没有真正找到解决方案的问题。
问题
当直接在 docker 容器内的 Windows 机器上运行 gdb 时(或者当使用 gdb-multiarch 从 docker 连接到 gdbserver 时),我在启动程序后总是得到以下输出run
:
(gdb) run
Starting program: /src/ev3/build/src/EV3_main
warning: Unable to find dynamic linker breakpoint function.
GDB will be unable to debug shared library initializers
and track explicitly loaded dynamic code.
Warning:
Cannot insert breakpoint -1.
Cannot access memory at address 0x4f58
并且在使用时next
或者step
我得到:
(gdb) next
Cannot find bounds of current function
由于我真的无法在网上找到任何解决方案,我非常感谢任何帮助!提前致谢!