少なくとも、この問題には何らかの種類のメモリエラーが含まれると思います。私はSFMLでプログラムを作っています。私は現在SFMLのために作ったGUIクラスを使ってメニューを作っています。内部的には、GUIクラスはstd :: shared_ptrを使用して内部ポインタをすべて管理します。 main()終了とすべてのグローバルデストラクタが呼び出された後、プログラムは一貫してクラッシュし、gdbはntdll!WaitForAlpCompletionでブレークポイントがトリガされたと言っています。 GUIのインスタンシエーションをメニュー関数から削除すると、エラーなしで終了して終了します。これはクラッシュの原因としてGUIを示しているようですが、GUIの独自のインスタンスを作成して破棄するサブメニューは、クラッシュやブレークポイントなしで呼び出して終了できます。C++ GUIでのメモリエラーの特定
いくつかの擬似コード:
SubMenu
{
Create GUI
Do Menu
Destroy GUI
}
Menu
{
Create GUI
Do Menu?SubMenu
Destroy GUI
}
main
{
Init Stuff
Menu
UnInit Stuff
Destroy GUI
return 0
}
//after return
Global Dtors
Breakpoint triggered???
私は、これは何ができるかに関して、途方に暮れてよ。今日はいつかvalgrindのようなメモリデバッガを使うつもりですが、他に誰かがこれが何であるかについてのアイデアがあるのだろうかと思っていました。
私たちはなぜ擬似コードを見るだけですか?私はそれがあなたの*デザイン*の問題だとは思っていません。 –