Gul*_*zar 2 c++ debugging docker
这花了我一整天的时间才找到,所以我将其发布以供将来参考。
我正在 docker 镜像上开发 C++。我正在使用克利翁。
我的代码是在调试模式下编译的,并且在运行模式下运行良好,但是当尝试调试时,进程会立即退出,并显示非常丰富的信息
Process finished with exit code 1
Run Code Online (Sandbox Code Playgroud)
到
尝试调试仍然退出,但在 clion 中产生弹出窗口
'A packet returned error 8'
Run Code Online (Sandbox Code Playgroud)
相同的代码在本地计算机上调试得很好。
命令docker run是
RUN_CMD="docker run --group-add ${DOCKER_GROUP_ID} \
--env HOME=${HOME} \
--env="DISPLAY" \
--entrypoint /bin/bash \
--interactive \
--net "host" \
--rm \
--tty \
--user=${USER_ID}:${GROUP_ID} \
--volume ${HOME}:${HOME} \
--volume /mnt:/mnt \
$(cat ${HOME}/personal-uv-docker-flags) \
-v "${HOME}/.Xauthority:${HOME}/.Xauthority:rw" \
--volume /var/run/docker.sock:/var/run/docker.sock \
--workdir ${HOME} \
${IMAGE} $(${DIR}/impl/known-tools.py cmd-line ${TOOL})"
Run Code Online (Sandbox Code Playgroud)
如何在docker上调试C++?
最终,我发现了这条评论,这让我看到了这篇博文,其中我了解到 docker 默认情况下不允许进行 C++ 调试。
在 Docker 中进行 C++ 内存分析和调试需要参数 --cap-add=SYS_PTRACE 和 --security-opt seccomp=unconfined。
我添加了
--cap-add=SYS_PTRACE --security-opt seccomp=unconfined
Run Code Online (Sandbox Code Playgroud)
命令docker run,调试器能够连接。
| 归档时间: |
|
| 查看次数: |
1363 次 |
| 最近记录: |