質問: スタックの効率的な切り替え 何らかの理由で、私は自分のアプリケーションでいくつかの関数を呼び出すスタックを切り替えます。私はその目的のために **makecontext/getcontext/swapcontext** を使用します。しかし、私はそれが遅すぎると感じます。 私はスタックポインタと他のレジスタを保存し、次にスタックポインタとしてスタックとして使用したい新しいメモリの値を代入する、その目的のカスタムコードを使用しようとしました。しかし、私は**スタックスマッシング検出**のエラーを取得し続けています。 いくつかの特別なパーミッションがOSによってスタックに設定されているのでしょうか、それとも何が問題なのですか?どのように問題を回避する。
回答: 優れた GNU Pth ライブラリは、これらの手法を大いに活用しています。これは非常によく文書化されており、コンパイル時に最も効率的なコンテキスト切り替えメカニズムを決定します。実際に設定時に**編集:** 著者の論文: `rse-pmt.ps` は、ユーザスペースコンテクストの切り替えと関連する問題(代替シグナルスタックなど)に関する技術的な説明を提供します。