Lorsque j'ai essayé de déboguer un programme C à l'aide de la commande gdb dans le conteneur Docker, ce qui suit
warning: Error disabling address space randomization: Operation not permitted
J'étais faché.
(gdb) b 5
Breakpoint 1 at 0x117c: file test.c, line 5.
(gdb) r
Starting program: /home/user/dev/test
warning: Error disabling address space randomization: Operation not permitted
Comme vous vous en doutez, gdb utilise des appels système, mais il semble que vous ne puissiez pas accéder au périphérique de la machine hôte car vous n'avez pas l'autorisation de l'intérieur du conteneur.
Option pour autoriser l'appel système sera ajouté.
$ docker run -it --cap-add=SYS_PTRACE --security-opt="seccomp=unconfined" [CONTAINER_NAME] /bin/bash
Écrivez ce qui suit sous «service».
docker-compose.yaml
cap_add:
- "SYS_PTRACE"
security_opt:
- "seccomp=unconfined"
https://sott0n.github.io/posts/docker_gdb/
Recommended Posts