質問

私のmultithraded申請を使用していsleep()関数の一つのGLFW図書館):

glfwSleep(..);

というのが私segfaultingとして呼び出しスタックが表示されます.

#0 76CFC2BC WaitForSingleObjectEx() (C:\Windows\system32\kernel32.dll:??)
#1 00000016 ??() (??:??)
#2 0000006C ??() (??:??)
#3 00000000 ??() (??:??)

glfwSleep() 使用中ます。は危険?なぜ私がプログラムsegfaultingその結果に。

編集:

時のパラメータの glfwSleep() は < 0.02(s)なsegfault!

編集2:

からの公文書のGLFW:

書面にネジ付きアプリケーションする 角になる前に使用 であるが、重要なルール かなり簡単に

  • 常に保証専用のアクセスデータ共有スレッド!
  • うスレッドが同期されます!
  • なに忙しく楽しみに!

んで答え..べての代替。

よろしく!

他のヒント

)glfwSleep(の呼び出し元のスレッドsegfault'ed同じスレッドですか?

クラッシュがWaitForMultipleObjectsExのAPIの呼び出しによって引き起こされているようです。 あなたが指定しWaitForMultipleObjectsExに正しいシンクオブジェクトと数字に渡すのですか?

引用 の実践的なプログラマー,

`を選択しいのではないか"という破

いうのは珍しいことだと思う 示バグのOSやコンパイラ、 も第三者の製品または 図書館があります。バグの修正がるおそれがあると認められるときは、 願います。

なぜプログラムが呼び出し WaitForSingleObjectEx()glfwSleep() 電話 Sleep()?ももんのソースコード Sleep(), ではない。分解 Sleep() 五見によってはバージョンのWindowsです) Sleep() のいずれかで通話やテール-電話 SleepEx().XP, SleepEx() 電話 NtDelayExecutionThread(), は、Vistaで WaitForSingleObjectEx().

で何が起きたのか、スタック?00000016,0000006C、00000000な有効で返します。私たとしても、驚くことはないであればどこかのコマンドでパスを指すポインタースタックに割り当て現在のバッファを別のバッファのスレッドがプログラムは、あなたに眠っているが、他のスレッドcorrupts最初のスレッドのスタックです。ステップへ Sleep(), われわれのメモリにブレークポイントの返送先住所とすることができるでキャッチ回数です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top