5 c++ ubuntu clang lldb docker
安装程序是一个运行 ubuntu 16.04、clang/lldb 6.0 的 docker 容器。我希望能够远程调试应用程序,目前是通过另一个终端而不是 IDE。
我的泊坞窗文件
FROM ubuntu:16.04
RUN apt update
RUN apt install -y curl git nano cmake build-essential xz-utils
RUN apt install -y clang-6.0 lldb-6.0
EXPOSE 2000
CMD [ "/bin/bash" ]
Run Code Online (Sandbox Code Playgroud)
我按如下方式旋转容器
docker run --privileged --cap-add=SYS_PTRACE --security-opt seccomp=unconfined -it -v ~/Developer:/Developer -p 2000:2000 --name cpp-dev ubuntu-clang-dev
从容器内部进行调试
在容器内时,我可以使用 clang++ 和 lldb 成功编译和调试我的程序。
我如何启动我的 lldb 服务器
lldb-server-6.0 平台 --server --listen *:2000
现在,我从一个单独的终端执行以下操作:
> lldb
> platform select remote-linux
> platform connect connect://localhost:2000
> target create test
> b main (which returns breakpoint main at main.cpp:5)
> process launch
Run Code Online (Sandbox Code Playgroud)
错误: (lldb)进程启动错误:连接远程失败(无法连接端口)错误:进程启动失败:无法连接端口
我究竟做错了什么?
小智 5
我自己找到的。
LLDB 服务器在端口 2000 上侦听传入连接。收到这样的请求后,它会生成一个单独的“lldb g:”。这个秘密端口不从我的虚拟机向外界开放。
对我来说最简单的技巧是让容器与主机在同一网络上运行。因此,一旦我启动容器:
docker run --privileged --cap-add=SYS_PTRACE --security-opt seccomp=unconfined -it -v ~/Developer:/Developer **--network host** --name cpp-dev ubuntu-clang-dev
Run Code Online (Sandbox Code Playgroud)
一切正常,我可以按照广告的那样从主机运行 lldb。
| 归档时间: |
|
| 查看次数: |
2292 次 |
| 最近记录: |