Linux 2.6.32-32では、プログラム内のスレッドに関する次の情報をプログラムで見つける方法はありますpthreads
か?必要なもの:実行カウント、スタックポインター、スタックの開始/終了、スタックサイズ、スタックの使用状況。ThreadXのようなものだと思いますが、プログラム内にあります。ありがとう。
3356 次
2 に答える
6
- pthread_getattr_np()は、スレッドの pthread 属性を提供する必要があります
- pthread_attr_getstack()は、スタックのアドレスとサイズを返します
- 実行回数の意味がわかりません。
- 現在のスレッドとは異なるスレッドのスタック ポインターについては、ptraceを使用する必要がある場合があります。取得したら、それを使用して、スタックの使用量を決定するための計算を行うことができます。
独自のスタック ポインターを取得するには、次の行に沿っていつでも何かを実行できます。
mword sp;
asm volatile ("mov %esp, $0" : "=r"(sp));
于 2011-07-14T23:19:59.503 に答える
4
BjoernD の回答への補遺として、を使用してコンテキスト スイッチ カウントと合計実行時間を取得できgetrusage
ますRUSAGE_THREAD
。実行されたタイム スライスの生の数に関する情報を取得することはできません。この情報はそもそも追跡されません。
于 2011-07-14T23:27:17.910 に答える