【发布时间】:2019-07-31 19:16:30
【问题描述】:
到目前为止,我能够理解以下关于 docker 的内容:
您可以使用它来容器化您的应用程序 - 沙盒。
您可以将其用作构建容器,通过“绑定挂载”您的源代码目录并使用容器内的构建工具来构建它。
我将 docker 用于第二个用例。
问题:
我有一个混合了 C 和 C++ 组件的项目,我想完全在 docker 容器中开发它,因为它需要大量的环境配置并且有旧的库依赖项,我不想污染我的开发环境(主机)机器。
我可以使用“gcc”在 docker 中构建它,但我不知道如何调试它。
我尝试通过网络端口使用 gdbserver 对其进行调试,并将其进程附加到 Eclipse CDT(在主机上),但它不会映射回我的源代码,而是显示汇编代码。
我想让它映射回我的源代码以便于调试。有人可以建议我适当的工作流程或指出正确的方向吗?
【问题讨论】:
-
@Someprogrammerdude 考虑了您的建议 - 希望它提供更好的可见性
-
假设您在启用调试信息的情况下构建(使用 GCC
-g标志),那么您的 Docker 环境和主机环境中源文件的路径是否相同? -
除非容器看到的路径不是主机看到的路径,除非您碰巧将它们安装在完全相同的位置。查看 gdb 更改源路径的选项sourceware.org/gdb/onlinedocs/gdb/Source-Path.html
-
我还没有测试过它(因此暂时保留它作为评论),但 Visual Code 内置了对容器内开发(包括调试)的支持:code.visualstudio.com/docs/remote/containers
标签: c++ c docker eclipse-cdt