gpt4 book ai didi

c++ - 远程 lldb 调试器进入 docker 容器的问题

转载 作者:搜寻专家 更新时间:2023-10-31 02:04:16 25 4
gpt4 key购买 nike

安装程序是一个运行 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) 进程启动错误:连接远程失败(无法连接端口)错误:进程启动失败:连接端口失败

我做错了什么?

最佳答案

我自己找到的。

LLDB 服务器在端口 2000 上监听传入连接。收到这样的请求后,它会生成一个单独的“lldb g:”。这个 secret 端口在我的虚拟机上是不对外开放的。

对我有用的最简单技巧是让容器与主机在同一网络上运行。因此,一旦我启动我的容器:

docker run --privileged --cap-add=SYS_PTRACE --security-opt seccomp=unconfined -it -v ~/Developer:/Developer **--network host** --name cpp-dev ubuntu-clang-dev

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

关于c++ - 远程 lldb 调试器进入 docker 容器的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53795271/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com