0

この関数でセグメンテーション違反が発生しましたが、それが何をするのか、なぜセグメンテーション違反になるのか、コードがどこでそれを呼び出すのかさえわかりません。

誰でも光を当てることができますか?Netbeans IDE と MinGW ツールチェーンを使用した Windows の C コード。


[更新] 通常、@JoachimPileborg が提案したとおりに実行しますが、セグメンテーション エラーが発生すると、コール スタックにコードが含まれません。実際、それは読む

ntdll!TpCallbackMayRunLong ()
?? ()
ntdll!TpCallbackMayRunLong ()
?? ()

そして、それら?? ()はゼロに評価されます!

TpCallbackMayRunLong()アイドル時間中にシステムによって呼び出されている名前を形成していると思いますが、私のコードからではありません。

4

2 に答える 2

0

TpCallbackMayRunLongを使用してクリティカル セクションを削除し、削除されたクリティカル セクションに対してまたはDeleteCriticalSectionを呼び出そうとすると呼び出されます。EnterCriticalSectionLeaveCriticalSection

他のことが原因で同じエラーが発生する可能性がありますが、私の状況ではこれが原因であることがわかりました。

于 2013-04-02T16:05:34.717 に答える
0

何が原因なのかはわかりませんでしたが、関数の名前から、ブロッキング待機 ( timeout = zer0 ) が気に入らないと推測したので、タイムアウトを 20 秒に設定すると、問題なく動作します。

送信者が常に送信することはわかっています.20秒は、送信者と受信者の起動を同期させるのに十分な時間です. Ymmv

于 2013-03-20T01:49:44.120 に答える