Tag: GDB

docker容器中的gdb返回“ptrace:不允许操作”。

我在容器和主机上检查了/proc/sys/kernel/yama/ptrace_scope – 都报告值为零,但是当连接到一个gdb报告 Reading symbols from /opt/my-web-proxy/bin/my-web-proxy…done. Attaching to program: /opt/my-web-proxy/bin/my-web-proxy, process 1 ptrace: Operation not permitted. 我也尝试附加到具有特权标志的容器 docker exec –privileged -it mywebproxy_my-proxy_1 /bin/bash 主机操作系统是Fedora 25与docker从他们的回购和容器是官方centos6.8

我怎样才能gdb连接到在docker集装箱运行的进程?

我在docker容器中有一个长期运行的进程,我想用gdb来查看哪些线程正在运行并获得堆栈跟踪。 我可以附加到主机的进程,但我不能解决任何符号,因为可执行文件是在文件系统中的不同位置(它是在docker安装的卷),共享系统库都停留在docker文件系统映像/ var / lib / docker中的某处。 我能够生成一个核心文件,并使用gdb通过指定可执行文件的主机path来查看它,但由于系统库全部位于错误的位置,并且被加载到corefile中的错误位置,所以我没有从这个信息。 我有任何我忽略的选项吗?

Docker中的GDB问题

使用Docker version 1.1.0, build 79812e3版本Docker version 1.1.0, build 79812e3在Ubuntu 13.04上Docker version 1.1.0, build 79812e3 ,并使用由以下项创build的Docker version 1.1.0, build 79812e3容器: # docker build -t gdb_problem_testing – < THIS_FILE FROM ubuntu RUN echo "deb http://archive.ubuntu.com/ubuntu precise main universe" > /etc/apt/sources.list RUN apt-get update RUN apt-get install -y build-essential gdb 这样做: user@host $ sudo docker run –rm -it […]

Docker中的debugging限制是什么?

我正在debugging一个编译的(C ++)python模块,它在导入时在docker容器内神秘崩溃。 当我在gdb运行python3,然后导入,然后尝试打印回溯,我只得到 # gdb /usr/bin/pyton3 GNU gdb (Ubuntu 7.11.1-0ubuntu1~16.04) 7.11. … (gdb) run -c 'import myModule' warning: Error disabling address space randomization: Operation not permitted During startup program terminated with signal SIGSEGV, Segmentation fault. (gdb) bt No stack. (gdb) gdb可以(不)在Docker容器中做一些限制吗? 崩溃本身是令人惊讶的,但无法进行debugging更是如此。 该模块使用-ggdb2编译以包含尽可能多的debugging信息。