質問 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
仮想マシンに独自の LAN IP を持たせたいので、テストを容易にするためにブリッジを使用します。 ...
CSS にカスケード メカニズムがあるのはなぜですか? CSS では、同じ要素の特定のプロパティに同...
効果画像: 1. はじめに独自のアプレットでこのような機能を実装する必要がある1. 核となる考え方ス...
この記事では、参考として MySQL 5.7.23 のインストール チュートリアルを記録します。 1...
マスタースレーブレプリケーションがなぜ必要なのでしょうか? 1. 複雑な業務システムでは、SQL 文...
目次序文プレビュー文章グラフィックコンポーネントプロパティ機能グリッドを描く軸角度を計算するスケール...
テキストシャドウテキストシャドウ: 水平オフセット 垂直オフセット ぼかし色互換性: IE10+ &...
効果を直接確認するために、リロード、左を閉じる、右を閉じる、その他の機能を閉じるなどの右クリック メ...
質問docker run コマンドを使用して、tomcat コンテナが正常に追加されました。ポートも...
今日から、定期的にちょっとした豆知識を整理していきます。簡単なものもあるかもしれませんが、どれも役に...
1. mpstatコマンド1.1 コマンド形式 mpstat [ -A ] [ -u ] [ -V ...
1. シナリオ表示Tomcat ログに次の例外情報が時々報告されます。何が起こっているのでしょうか...
なお、これはvue-cliで作成したプロジェクトではありません。vue.jsを参照して記述したHTM...
オプションに属性 selected = "selected" を追加すると、それ...
目次要約する要約する配列が変更されると、対応するデータを動的にロードしますシナリオ: 異なるコンポー...