バイナリがLinuxでソケット処理を使用しているepoll
かどうかを確認する必要があります。select
バイナリは削除されませんが、Linuxボックスで実行できないため、実行できませんstrace
。
1 に答える
nm <binary>
どのシンボルが定義されているか、そしてさらに重要なことに、ここでは、どのシンボルが特定のバイナリによって使用されているかがわかります。poll
出力にリストされている、またはリストされているものを確認することで、控えめな推測を得ることができselect
ます。
アプリケーションが両方に対してリンクされていることに気付くかもしれません。その場合、どちらを呼び出すかを実行時に決定している可能性があり、実行した場合に実際にどちらを使用するかを簡単に判断することはできません。
nm
バイナリの構築方法によっては、-D
フラグを使用して実行する必要がある場合があります。または、を指定しないようにする必要がある場合があります-D
。両方の方法を試してください。
プログラムが共有ライブラリを使用している場合、使用しているライブラリへの実際の呼び出し、poll
またはselect
そのライブラリ内にある可能性があります。その場合、それぞれで実行されているすべてのライブラリを調べなければならない場合がnm
あります。の出力でエントリを探すことにより、プログラムが使用するライブラリを見つけることができます。ldd
それが機能しない場合もあります。NEEDED
readelf --dynamic
バイナリが現在実行しているものとは異なるプラットフォーム用にビルドされている場合は機能しldd
ません。また、のクロスコンパイラビルドを使用してbinutils
、そのバージョンを使用する必要がある場合がありnm
ます。