GNU/Linux >> LINUX-Kenntnisse >  >> Linux

gdb trifft keine Breakpoints, wenn ich es aus dem Docker-Container heraus starte

Update 04.01.2020:Verwenden Sie die Antwort von Kevin W. Matthews – sie ist besser, weil sie die erforderlichen individuellen Fähigkeiten gewährt, ohne den gesamten Container zu erhöhen.

tldr; verwenden

docker run --privileged

Länger:Ich hatte einige Probleme mit gdb im Docker – es versuchte (und scheiterte), die Randomisierung des Adressraum-Layouts zu deaktivieren – aber nur auf docker-machine , nicht auf meinem nativen Linux-Host.

Wenn gdb ASLR nicht deaktivieren konnte, wurden alle meine Haltepunkte ignoriert. Verwenden Sie die --privileged Flagge hat mein Problem behoben. Ihr Kilometerstand kann variieren.


Anstatt den gesamten Container zu erhöhen, konnte ich die Option

verwenden
--security-opt seccomp=unconfined

zum Beheben von Randomisierungsproblemen im Adressraum.

Einige empfehlen auch, ptrace zu aktivieren Fähigkeit mit

--cap-add=SYS_PTRACE

aber das schien bei mir keine Wirkung zu haben.

Hier sind die gleichen Einstellungen für Docker Compose:

security_opt:
  - seccomp:unconfined
cap_add:
  - SYS_PTRACE

Details stammen aus diesem Stack Overflow-Beitrag.


Linux
  1. Pipelined Sed funktioniert nicht bei gefundenem Dateinamen innerhalb der Bash-Befehlsersetzung, wenn er von Find „-exec“ aufgerufen wird?

  2. Kann Docker in einem Linux-Container ausgeführt werden?

  3. Wie sende ich ein Signal an das Programm, das in einem Docker-Container ausgeführt wird?

  4. Was befindet sich in einem Docker-Image/Container?

  5. Wie füge ich Benutzer zum Docker-Container hinzu?

Docker auf Ubuntu ausführen:Das gemountete Host-Volume kann nicht vom Container aus beschrieben werden

Docker Volume stellt keine Dateien bereit

Warum fordert der Docker-Container die Erlaubnis verweigert auf?

ssh-copy-id funktioniert nicht

Warum sagt rm manual, dass wir es ohne Argumente ausführen können, wenn das nicht stimmt?

Was bedeutet das Eingabegerät ist kein TTY genau in der Docker-Run-Ausgabe?