【问题标题】:problem with remote lldb debugger into docker container远程lldb调试器进入docker容器的问题
【发布时间】:2019-05-16 15:24:50
【问题描述】:

Setup 是一个运行 ubuntu 16.04、clang/lldb 6.0 的 docker 容器。我希望能够远程调试应用程序,现在通过另一个终端而不是 IDE。

我的 docker 文件

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" ]

我按如下方式旋转我的容器

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-server

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

错误: (lldb) 进程启动 错误:连接远程失败(连接端口失败) 错误:进程启动失败:连接端口失败

我做错了什么?

【问题讨论】:

    标签: c++ docker ubuntu clang lldb


    【解决方案1】:

    我自己找到的。

    LLDB-server 在端口 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
    

    一切正常,我可以像宣传的那样从主机运行 lldb。

    【讨论】:

      【解决方案2】:

      您可以这样指定 LLDB-server 使用的端口:

      lldb-server platform --listen "*:31166" --server --min-gdbserver-port 31200 --max-gdbserver-port 31300
      

      当然,您需要在 Dockerfile 中公开这些端口:

      EXPOSE 31166
      EXPOSE 31200-31300
      

      当你运行容器时:

      docker run --privileged --name vapor-server -p 8080:8080 -p 31166:31166 -p 31200-31300:31200-31300 vapor-image
      

      请注意,您需要以特权身份运行 docker(--privileged 选项),否则附加调试器将失败并出现 Operation not Permitted 错误。

      【讨论】:

        猜你喜欢
        • 2018-01-13
        • 2016-04-06
        • 1970-01-01
        • 2018-09-20
        • 2021-03-17
        • 1970-01-01
        • 2016-02-06
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多