gdb
読み取り専用モードがありますか?
gdbレベルを読み取り専用に制限する方法はありますか?したがって、gdbの現在のデータを変更することはできません。
この場合、gdbserverや他のツールが役に立ちますか?
答え1
開発者が変更したくない場合は、コアダンプを提供するのはどうでしょうか? coredump はプロセスのメモリマップダンプです。これとコアダンプを生成するバイナリを使用すると、アプリケーションを実行せずにアプリケーションをデバッグできます(デバッグ情報のみが必要です)。コアダンプを生成するには、gcore
次のコマンドを使用します。
答え2
gdbには読み取り専用モードがなく、gdbはプログラムをデバッグする唯一の方法ではありません(特別な権限はありません)。 GDBの使用道以下では、ptrace権限はすべてまたは専務です。
一部のセキュリティフレームワークはptraceの使用を制限します。例えば、
最新のUbuntuバージョンはptrace
デフォルトで親プロセスに制限されています。。しかし、これらの制限は、どのptraceコマンドが許可されるのではなく、誰がどのプロセスでptraceを使用できるかに関するものです。私はptraceコマンドを区別するためのきめ細かい権限を持つフレームワークを知りません。
開発者がシステムの動作を変更することなく、実稼働サーバーの問題をリアルタイムで調査できるようにしたいようです。この問題に対する1つの解決策は、仮想マシンですべてのサーバーを実行することです。問題が発生した場合は、VMのスナップショットを撮ってコピーし、開発者にスナップショット(ネットワーク接続が切断された状態)で作業するようにしてください。保存したスナップショットに基づいて複数回デバッグを再開できるため、開発者の作業が簡単になります。