質問 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
0. タグとは何ですか? XML/HTML コードコンテンツをクリップボードにコピー<入力 t...
目次1. copy_{to,from}_user() とは何か1. copy_{to,from}_u...
持つことの使用法having 句を使用すると、グループ化後にさまざまなデータをフィルター処理できます...
1. コマンドの紹介ifconfig (ネットワーク インターフェイスを構成する) コマンドは、ネッ...
鏡とは何ですか?イメージは、複数のイメージ レイヤー (UnionFS および AUFS ファイル ...
目次序文1. カスタムフォーカスコマンド1. 方法1 2. 方法2 3. 方法3 2. 入力ボックス...
スタイル ガイドとは何でしょうか? 簡単に言えば、ストーリーを伝える方法を説明するドキュメントです。...
1. rzをサーバーにアップロードして解凍する rz [root@mini2 アップロード]# ta...
Object.definePropertyの理解文法:オブジェクト.defineProperty(o...
目次解決策1解決策2テーブルを作成するときに、興味深い問題に遭遇しました。「指定されたキーが長すぎま...
負荷リクエスト成功リクエストに失敗しました cmdをクリックし、ファイルパスでEnterキーを押しま...
コードをコピーコードは次のとおりです。 jQuery.cookie = 関数(名前、値、オプション)...
目次1. 最も適切なフィールド属性を選択する2. フィールドをNOT NULLに設定してみる3. サ...
現在、クロスプラットフォーム開発技術はもはや新しい話題ではありません。市場にはいくつかのオープンソー...