GNU/Linux >> Linux の 問題 >  >> Linux

Docker コンテナー内から gdb を実行すると、gdb がブレークポイントにヒットしません

update 2020.01.04:Kevin W Matthews の回答を使用してください --- コンテナー全体を昇格させることなく、必要な個々の機能を付与するため、より優れています。

tldr;使う

docker run --privileged

長い:docker で gdb に問題がありました--- アドレス空間レイアウトのランダム化を無効にしようとしました (そして失敗しました)--- ただし、docker-machine でのみです 、私のネイティブ Linux ホストではありません。

gdb が ASLR の無効化に失敗すると、すべてのブレークポイントが無視されます。 --privileged の使用 フラグは私の問題を修正しました。走行距離は異なる場合があります。


コンテナ全体を持ち上げるのではなく、オプションを使用できました

--security-opt seccomp=unconfined

アドレス空間のランダム化の問題を修正します。

ptrace を有効にすることを推奨する人もいます

の機能
--cap-add=SYS_PTRACE

しかし、これは私には何の効果もないようでした.

以下は、Docker Compose の同じ設定です:

security_opt:
  - seccomp:unconfined
cap_add:
  - SYS_PTRACE

詳細は、このスタック オーバーフローの投稿から取得されます。


Linux
  1. 実行中のSystemdコンテナ内でコマンドを実行する方法は?

  2. Dockerコンテナ内でプログラムを実行する方法は?

  3. Dockerコンテナからカスタムイメージを作成する方法

  1. Dockerコンテナで実行されるプログラムにシグナルを送信するには?

  2. Docker イメージ/コンテナの中身は?

  3. ユーザーを Docker コンテナに追加するにはどうすればよいですか?

  1. Docker ボリュームがファイルをマウントしていない

  2. docker コンテナが Permission denied を要求するのはなぜですか?

  3. docker コンテナ内で cron ジョブを実行する方法