質問 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
私は長い間この問題に悩まされていましたが、検索してみたところ、実際にこの問題を解決した人がいることが...
序文ある日、突然 MySQL の次のキー ロックについて尋ねられ、私の即座の反応は次のようなものでし...
目次day.js を使用する理由モーメントデイ.js day.js がなければどうなるでしょうか? ...
HTML でフォームの送信を無効にする方法は 2 つあります。 1. コントロールタグにreadon...
導入: Nginx (エンジン エックスと同じ発音) は、BSD のようなプロトコルに基づいてリリー...
目次方法1: 関数を直接呼び出す方法2: provide / inject (静的更新) を使用する...
今日は、新しく購入した Alibaba Cloud ECS 環境 (Ubuntu 16.04 LTS...
目次MySQLをインストールする環境変数の設定MySQLをインストールするmysqlをダウンロードし...
ただし、デフォルトの src を持つ <img> 要素を使用してスクロール読み込み効果を...
1 はじめに「DockerでPostgreSQLを起動する方法といくつかの接続ツールのおすすめ」の記...
張新旭氏の記事を引用して皆さんにシェアしたいと思います。 変更を加えたい場合は、対応する画像によって...
私は頻繁にシステムをインストールするので、インストールのたびにいくつかのソフトウェアを再インストール...
目次1. 集計クエリ1. COUNT関数2. SUM関数3. AVG関数4. MAX関数とMIN関数...
目次1. クロージャとは何ですか? 1.2 クロージャのメモ化: 関数は定義された環境を記憶する1....
目次序文jQuery 以外の場合は何を使うのでしょうか? DOMとイベントAJAX リクエスト要約す...