Docker中的调试限制是什么?

时间:2017-07-11 11:51:49

标签: debugging docker gdb

我正在调试一个编译的(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)

在Docker容器中gdb可以(不)做什么限制?崩溃本身令人惊讶,但无法进行调试更是如此。该模块使用-ggdb2进行编译,以包含尽可能多的调试信息。

1 个答案:

答案 0 :(得分:8)

对于记录:调试(以及strace)需要CAP_PTRACE功能。通过使用--privileged运行容器来解决问题。