gdb does not hit any breakpoints when I run it from inside Docker container
update 2020.01.04: Use the answer given by Kevin W Matthews --- it's better because it grants the necessary individual capabilities without elevating the entire container.
tldr; use
docker run --privileged
Longer: I was having some problems with gdb in docker---it was attempting (and failing) to disable address space layout randomization---but only on docker-machine
, not on my native linux host.
When gdb failed to disable ASLR, all of my breakpoints would be ignored. Using the --privileged
flag fixed my issue. Your mileage may vary.
Rather than elevating the entire container, I was able to use the option
--security-opt seccomp=unconfined
to fix address space randomization problems.
Some also recommend enabling the ptrace
capability with
--cap-add=SYS_PTRACE
but this didn't seem to have any effect for me.
Here are the same settings for Docker compose:
security_opt:
- seccomp:unconfined
cap_add:
- SYS_PTRACE
Details are taken from this Stack Overflow post.