質問 docker で gdb を実行すると、ブレークポイントに到達しますが、ブレークポイントに入ることができません 理由 ホストのセキュリティを確保するために、Docker では、ASLR (アドレス空間レイアウトのランダム化) を含む多くのセキュリティ設定が有効になっています。つまり、Docker 内のメモリ アドレスはホストのメモリ アドレスとは異なります。 ASLR により、GDB などのアドレス依存プログラムが正しく動作しなくなります。 回避策 dockerのスーパー権限を使用し、--privileged(2つのダッシュ、マークダウン構文)を追加します のように:
GDBは正常に動作します スーパー権限により多くのセキュリティ設定が無効になり、Dockerの機能を最大限に活用できるようになります。 たとえば、docker で docker を開くことができます(笑)。 追加知識: docker ptrace: 操作は許可されていません。対処方法 docker の gdb がプロセスをデバッグしているときに、エラーが報告されます。
その理由は、Docker では ptrace がデフォルトで無効になっているためです。アプリケーション分析のニーズを考慮すると、いくつかのソリューションがあります。 1. seccompをオフにする
2. スーパー権限モードを使用する
3. ptrace制限のみを開く
もちろん、セキュリティの観点から、デバッグにのみ gdb を使用する場合は、3 番目の方法を使用することをお勧めします。 セキュア コンピューティング モード (seccomp) は、コンテナー内で利用可能な操作を制限するために使用できる Linux カーネルの機能です。 Docker のデフォルトの seccomp プロファイルは、許可される呼び出しを指定するホワイトリストです。 次の表には、ホワイトリストに含まれていないために事実上ブロックされている重要な(ただしすべてではない)システム コールがリストされています。この表には、各システム コールがブロックされた理由が記載されています。
上記のdockerでGDBを使用するときにブレークポイントを入力できない問題を解決する記事は、エディターが皆さんと共有する内容のすべてです。 皆さんの参考になれば幸いです。また、123WORDPRESS.COMを応援していただければ幸いです。 以下もご興味があるかもしれません:
|
<<: Sysbench の MySQL ベンチマーク プロセスの分析
>>: HTML iframe と frameset の違い_PowerNode Java Academy
CSS メディア クエリには非常に便利なアスペクト比、aspect-ratio があり、幅と高さを直...
この記事では、ブラインド効果を実現するためのjQueryの具体的なコードを参考までに紹介します。具体...
サンバの概要Samba は、Linux および UNIX システム上で SMB プロトコルを実装する...
導入クロージャは JavaScript の非常に強力な機能です。いわゆるクロージャは関数内の関数です...
Vue でタブ切り替えを実装する 3 つの方法1. v-showはコンテンツの切り替えを制御します1...
この記事では、プログレスバー効果を実現するためのJavaScriptの具体的なコードを参考までに紹介...
目次1. Docker Composeとは何か、インストールして使用する方法2. DOCleverと...
この記事では、Mysql WorkBenchのインストールと設定のグラフィックチュートリアルを参考ま...
Firefox の下位バージョンでは中国語の文字を入力できず、上位バージョンでは文字化けした文字が表...
目次設計シナリオ技術的なポイントサーバー情報準備フルバックアップスクリプト(Mysql-FullyB...
日々の運用・保守作業において、MySQL データベースのバックアップは重要です。ウェブサイトにとって...
1. パスワードを変更する1. 一般ユーザーのパスワードを変更する パスワード現在のパスワードを入力...
今日は、CSS を使用してクールな画像カルーセル コンポーネントを作成する方法を学びます。その原理は...
JS には、文字列をインターセプトするための 3 つのメソッド、 slice() 、 substri...
知識への依存Go クロスコンパイルの基礎Dockerの基礎Dockerfileカスタムイメージの基本...