xscope
詳細情報
- 開発者
- ジェームズ・ピーターソン(MCC)
- 公開
- 種別
- デバッグツール
- ソースコード
- gitlab.freedesktop.org
X11のプロトコルスニファ。クライアントとサーバーの間にプロキシとして入り、すべてのリクエスト、リプライ、イベント、エラーを平文で表示する。
xscopeは1988年、テキサス州オースティンの研究コンソーシアムMCCでジェームズ・ピーターソンが書いたもので、X11のcontribツリーに収められていた。自分専用のディスプレイ番号で待ち受け、本物のサーバーへ転送しつつ、双方向の通信をデコードする。たとえばxscope -i1 -o0 は:1で受けて:0へ送り、調べたいクライアントはDISPLAY=:1で起動する。出力は仕様書どおりのXプロトコルそのものだ。属性付きのCreateWindow、返答付きのGetProperty、矩形付きのExposeイベント、シーケンス番号付きのエラーが並ぶ。Xlibのエラーハンドラが、ずっと前に送ったリクエストについてBadMatchとしか言わないとき、まさに必要になる情報である。
このツールはstraceやtcpdumpと同じ系統だが、対象は一つのプロトコルに限られる。XtやMotifのアプリが実際に何をしているか、たとえば起動に何回の往復が要るか、ウィンドウがなぜ3回再描画されるかを知る実用的な手段であり続けた。派生にはGUIを持つxmonや、新しい拡張に対応した2005年のxtraceがあり、WiresharkもpcapからX11をデコードできる。それでもxscopeはX.Orgが今も保守しており、サーバーが理解するもののほとんどを扱える。