質問 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
この記事では、写真の自動再生効果を実現するためのJSの具体的なコードを参考までに紹介します。具体的な...
1. 矢印関数1. 矢印関数自体はこれをバインドしないという事実を利用します。 2. render(...
目次1. テンプレート文字列とは何ですか? 2. 複数行のテンプレート文字列2.1 式付きテンプレー...
jQueryは劇場の座席選択と予約の効果を実現します。参考までに、具体的な内容は次のとおりです。効果...
1. 何ですか マークアップ言語として、CSSは比較的シンプルな構文とユーザーに対する要件が低いが、...
いわゆるファビコンは、Favorites Icon の略で、中国語ではウェブサイトアバターと呼ばれて...
WeChat アプレット プロジェクトを書いていたとき、その中に「都市選択」機能がありました。作者は...
問題の再現Alibaba Cloud Server は、Finalshell リモート接続を使用して...
1. まず、nginxの位置情報に関する関連知識を確認しましょう1) 位置マッチング手順: ~ #波...
目次1. 数字を逆にする2. 配列内の最大のn個の数値を取得する3. 階乗を計算する4. 現在の動作...
この記事は主にPostgreSQLマテリアライズドビューのプロセス分析について紹介します。サンプルコ...
目次UIデザインEcharts の例の効果序文サンプルコード最終結果UIデザイン Echarts の...
目次序文どのような状況でメモリリークが発生する可能性がありますか? 1. 偶発的なグローバル変数2....
2011 年に最も顕著なウェブサイトの変更は、一連の製品に新しいユーザー インターフェースを導入した...
要約するこの記事はこれで終わりです。皆さんのお役に立てれば幸いです。また、123WORDPRESS....