這花了我一整天的時間才找到,所以我將其發布以供將來參考。
我正在 docker 鏡像上開發 C 。我正在使用 clion。
我的代碼在除錯模式下編譯,并在運行模式下運行良好,但在嘗試除錯時,該行程立即退出并提供非常有用的資訊
Process finished with exit code 1
切換除錯器時

到

嘗試除錯仍然存在,但會在 clion 中產生一個彈出視窗
'A packet returned error 8'
相同的代碼在本地計算機上除錯良好。
該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})"
如何在 docker 上除錯 C ?
uj5u.com熱心網友回復:
最終,我發現了這條評論,這讓我看到了這篇博文,其中我了解到默認情況下 docker 上不允許 C 除錯。
在 Docker 中進行 C 記憶體分析和除錯需要引數 --cap-add=SYS_PTRACE 和 --security-opt seccomp=unconfined。
我加了
--cap-add=SYS_PTRACE --security-opt seccomp=unconfined
到docker run命令,并且除錯器能夠連接。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/370491.html
上一篇:除錯IBMCloud功能
下一篇:通過ID未連接的檔案
