运行 Debian 中的 gdb docker 图像结果
Running gdb in Debian docker image results
当 运行 gdb 在 docker 图像中时,我遇到了一些麻烦,我不确定是什么导致了问题,因为我是 gdb 和 [=36= 的完全新手].
背景
我正在尝试为在 ev3dev 上运行的 Lego EV3 编写一个 C++ 程序。为了编译它,我在我的 Windows 机器上设置了 docker 和 ev3dev 映像,并且能够在该映像中成功构建,将二进制文件传输到 EV3 并在那里执行。这一切都很好,直到我需要开始(远程)调试。我的计划是使用该程序在 EV3 上启动一个 gdbserver,并在我的 Windows 机器的 docker 容器内打开一个 gdb 会话并连接到 EV3 gdbserver。在我修复远程调试时的第一个错误后 - 我需要在我的 Windows 机器上使用 gdb-multiarch - 我遇到了更多问题,但我也没有真正找到解决方案。
问题
当 运行 gdb 直接在我 docker 容器内的 Windows 机器上时(或者当使用 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
由于我在网上找不到任何解决方案,我将不胜感激任何帮助!
提前致谢!
I always get the following output after starting the program with run
此错误通常意味着您的 docker 容器中的动态加载器已被完全剥离。这是容器创建者的包装错误。
如果您不使用 dlopen()
,这不是什么大问题。
(gdb) next
不要那个:你不会停在 GDB 知道下一行的位置。改为 continue
。
当 运行 gdb 在 docker 图像中时,我遇到了一些麻烦,我不确定是什么导致了问题,因为我是 gdb 和 [=36= 的完全新手].
背景
我正在尝试为在 ev3dev 上运行的 Lego EV3 编写一个 C++ 程序。为了编译它,我在我的 Windows 机器上设置了 docker 和 ev3dev 映像,并且能够在该映像中成功构建,将二进制文件传输到 EV3 并在那里执行。这一切都很好,直到我需要开始(远程)调试。我的计划是使用该程序在 EV3 上启动一个 gdbserver,并在我的 Windows 机器的 docker 容器内打开一个 gdb 会话并连接到 EV3 gdbserver。在我修复远程调试时的第一个错误后 - 我需要在我的 Windows 机器上使用 gdb-multiarch - 我遇到了更多问题,但我也没有真正找到解决方案。
问题
当 运行 gdb 直接在我 docker 容器内的 Windows 机器上时(或者当使用 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
由于我在网上找不到任何解决方案,我将不胜感激任何帮助! 提前致谢!
I always get the following output after starting the program with run
此错误通常意味着您的 docker 容器中的动态加载器已被完全剥离。这是容器创建者的包装错误。
如果您不使用 dlopen()
,这不是什么大问题。
(gdb) next
不要那个:你不会停在 GDB 知道下一行的位置。改为 continue
。