docker - docker中的gdb调试失败
问题描述
环境:主机:centos docker:ubuntu 16 nivida-docker 程序:c++ websocket
desc:当我在 docker 中使用 gdb 时,我不能使用断点,它只是说:警告:错误禁用地址空间随机化:不允许操作。我看到很多关于这个问题的解决方案,他们都告诉我添加:- -cap-add=SYS_PTRACE --security-opt seccomp=unconfined to my docker file ,所以我做到了。这是我的 docker 文件:
!/bin/sh
SCRIPT_DIR=$(cd $(dirname "${BASH_SOURCE[0]}") && pwd)
PROJECT_ROOT="$( cd "${SCRIPT_DIR}/.." && pwd )"
echo "PROJECT_ROOT = ${PROJECT_ROOT}"
run_type=$1
docker_name=$2
sudo docker run \
--name=${docker_name} \
--privileged \
--network host \
-it --rm \
--cap-add=SYS_PTRACE --security-opt seccomp=unconfined \
-v ${PROJECT_ROOT}/..:/home \
-v /ssd3:/ssd3 \
xxxx/xx/xxxx:xxxx \
bash
但是当重新启动容器并运行 gdb 时,它总是像下面这样被杀死:
(gdb) r -c conf/a.json -p 8075
Starting program: /home/Service/bin/Service --args -c conf/a.json -p 8075
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Killed
不知道哪里错了,大家有意见吗?
解决方案
尝试这个
docker run --cap-add=SYS_PTRACE --security-opt seccomp=unconfined
推荐阅读
- javascript - JS 构造函数/原型与类的语义名称
- delve - golang dlv 看不到源代码:: 没有这样的文件或目录
- javascript - 如何使用 java 脚本将 HTML 表单详细信息写入 Excel 工作表
- amazon-web-services - 当我登录到不同的图像存储库时,从哪里提取 docker 图像?
- ruby-on-rails - Ruby on Rails 项目图像显示问题 - 在网页上
- cakephp-3.0 - CakePHP 3.x - 资产添加版本而不是时间戳
- python - 为什么我的尝试除了不能正常工作?蟒蛇 3
- php - 隐藏 Composer 安装命令的输出
- java - Java:打印数组元素并插入换行符
- awk - 需要使用 awk 从 HL7 文件中检索值