POSIX 環境で pthreads を使用し、コンテキスト スイッチが発生しようとしている場合、レジスタの現在の値をどこかに保存する必要があるため、レジスタの値は次のようになるためesp
、このスレッドにコンテキスト スイッチを戻すときにそれを取得できます。esp
別のスレッドの保存された SP 値によって上書きされます。スレッドごとに別々のレジスターを持つことは不可能だと思いesp
ます (間違っていたら訂正してください)。そうは言っても、コンテキスト切り替えがヒットする直前に、現在のスレッドの SP 値がどのデータ構造に格納されているか知りたいですか?
struct pthread*
の値からキャストされた の値を調べてみましたpthread_t
が、たとえば、特定の関数を呼び出してテスト中のスレッドの現在の SP を変更しても何も変化しませんでした (つまり、テスト関数を呼び出す前後を比較します)。