LinuxでEclipse(gdb)を使用してプログラムをデバッグする必要があります。プログラムはrootとして実行され、非常に大きくなります。デバッグシンボルのあるバイナリは約250MBの大きさで、起動後に60を超える実行中のスレッドがあります。
私は最良の解決策について考えています:
- gdbserverを使用する
- ルートとしてEclipseを実行する
- gdbsuidを設定します
1番(gdbserver)が最善の解決策だと思いますが、残念ながら信頼性は高くありません。gdbとgdbserver間の接続が失われます。Eclipse <-> gdb<->gdbserver間で転送される大量のデータに問題があると思います。
2番目(Eclipseをrootとして実行)は、すべてのプロセスをrootとして実行することを意味し、Eclipseプラグインはバージョン管理されたファイルを変更するために私の代わりにrootユーザーを使用するため、バージョン管理システムにも干渉します。
3番(suid gdb)は試しませんでした。あなたはそれについてどう思いますか?それはまったく機能しますか?suid root gdbは、root-Passwordがまったくないのと同じくらい安全であることを知っていますが、マシンは私だけが開発とデバッグに使用します。そしてもちろん、必要な場合にのみsuidビットを設定する「有効化/無効化」スクリプトが存在する可能性があります。
他に何か提案はありますか?