トップページ > 過去ログ > 記事閲覧
特定サイズの画像ハンドル作成後に強制終了
名前:いっち 日時: 2012/02/16 21:10

特定サイズの画像ハンドル作成後に強制終了 2/13日付けのテストバージョンを利用して 一辺が特定のサイズのグラフィックハンドルを作ったり読み込んだりすると DxLib_End 内で強制終了が発生するようです。 以下はその際の呼び出し履歴です。 Test.exe!DxLib::DxFree() + 0x144 バイト C++ Test.exe!DxLib::TerminateHandleManage() + 0x2d バイト C++ Test.exe!DxLib::MV1Terminate() + 0x54 バイト C++ Test.exe!DxLib::NS_DxLib_End() + 0x63 バイト C++ Test.exe!DxLib::DxLib_End() + 0x17 バイト C++ > Test.exe!WinMain(HINSTANCE__ * __formal=0x00400000, HINSTANCE__ * __formal=0x00400000, HINSTANCE__ * __formal=0x00400000, HINSTANCE__ * __formal=0x00400000) 行 10 C++ //- 以下、テストコード -// #include "DxLib.h" int WINAPI WinMain( HINSTANCE, HINSTANCE, LPSTR, int ) { ChangeWindowMode( TRUE ); SetWindowText( "DxLib:" DXLIB_VERSION_STR ); if ( DxLib_Init( ) == -1 ) return -1; int gh = MakeGraph( 100, 690 ); DxLib_End( ); return 0; }

Page: 1 |

Re: 特定サイズの画像ハンドル作成後に強制終了 ( No.1 )
名前:eiki 日時:2012/02/17 11:36

関連しているものか分かりませんが、3.07bで画像リソース解放時にヒープエラーが起きます。 HEAP[○○.exe]: HEAP: Free Heap block c215a30 modified at c24601c after it was freed Windows によって ○○.exe でブレークポイントが発生しました。 (以下略) 3.07aでは起きないようです。 #追記(12/2/17) #再現しました。いっちさんのコードでMakeGraphではなく特定サイズの画像をLoadGraphでも発生するようです。 #自分の場合はこちらの画像のロードでヒープエラーが発生しました。 #illucalab.com/media/test.png
Re: 特定サイズの画像ハンドル作成後に強制終了 ( No.2 )
名前:管理人 日時:2012/02/19 13:09

ご報告ありがとうございます テストバージョンで実装した機能にバグがあり、内部で複数のテクスチャに分割されるサイズの画像を 作成・読み込みした場合にメモリの不正なアクセスが発生するようになっていました 修正版をアップしましたので、よろしければお試しください m(_ _;m http://homepage2.nifty.com/natupaji/DxLib/DxLibVCTest.exe // VisualC++ 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibBCCTest.exe // BorlandC++ 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibGCCTest.exe // Dev-C++ 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibMinGWTest.exe // MinGW 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibMakeTest.exe // ソース (中身を既存のライブラリのファイルに上書きして、BCCをお使いの 場合は『再構築』を、VCをお使いの場合は『リビルド』を、 Dev-C++をお使いの方は「Rebuild All(Ctrl+F11)」をして下さい)
Re: 特定サイズの画像ハンドル作成後に強制終了 ( No.3 )
名前:いっち 日時:2012/02/19 18:29

迅速な対応ありがとうございます。 修正確認しました。
Re: 特定サイズの画像ハンドル作成後に強制終了 ( No.4 )
名前:シスマ 日時:2012/02/20 20:44

すみません。 便乗報告させて下さい。 私の環境でも、いっちさんと同じくテストバージョンでLoadDivGraphがヒープエラーが起きていました。 そこで管理人さんが修正して下さいました後にVisualC++ 2010 Expressのデバッグモードで確認したところ、エラーが発生しないことを確認しました。 しかし、Release用にビルドして実行ファイルを直接実行したら、修正前のテストバージョンと同じ箇所だと思われるところで強制終了してしまいました。 VisualC++ 2010 Expressのデバッグモードでエラーが発生せずに、実行ファイルでエラーが起きるのも変な話ですが、一応報告させて頂きます。
Re: 特定サイズの画像ハンドル作成後に強制終了 ( No.5 )
名前:いっち 日時:2012/02/21 19:49

シスマさん> その事象は上記のテストコードでも発生するのでしょうか? 私の環境では特に問題ないようでした。 リビルドのし忘れや、ライブラリのパスの誤りといったこともありますので、再度ご確認いただけますか?
Re: 特定サイズの画像ハンドル作成後に強制終了 ( No.6 )
名前:eiki 日時:2012/02/21 20:47

こちらでも最新版でのエラーを確認しました。 私のケースだと、開発機(WinXP)では問題ありませんでしたが、Win7の別PCで実行した時に画像読み込みの際強制終了するようでした。 やはり特定の画像を読み込みした時にエラーが起きるようです。 Log.txtには 664:画像ファイル ○○ のロードに失敗しました と複数のファイルで出ており、終了時にメモリリークが起きています。 (以下一部抜粋) 23323:Alloc memory dump 23323: size: 161( 0.157kb) file:DxGraphics2.cpp line:31068 ID:7458 addr:0e29fcf8 data:<.... .).........> [00 00 00 00 20 fd 29 0e 00 00 00 00 00 00 00 00] 23323: size: 88( 0.086kb) file:DxGraphics2.cpp line:2911 ID:7456 addr:0e29da70 data:<................> [01 00 00 00 03 00 00 00 01 01 00 00 01 00 01 00] 23323: size: 196( 0.191kb) file:DxLib\DxWin.cpp line:26256 ID:7457 addr:0ee58820 data:<................> [b0 01 00 00 df 00 b0 05 e4 01 00 00 00 00 00 00] 23324: size: 161( 0.157kb) file:DxGraphics2.cpp line:31068 ID:7102 addr:0e29fc08 data:<....0.).........> [00 00 00 00 30 fc 29 0e 00 00 00 00 00 00 00 00] 23324: size: 88( 0.086kb) file:DxGraphics2.cpp line:2911 ID:7100 addr:0e29d9d0 data:<................> [01 00 00 00 03 00 00 00 01 01 00 00 01 00 01 00] 23324: size: 196( 0.191kb) file:DxLib\DxWin.cpp line:26256 ID:7101 addr:0ee58708 data:<................> [a3 01 00 00 de 00 a3 05 e4 01 00 00 00 00 00 00] 23324: size: 161( 0.157kb) file:DxGraphics2.cpp line:31068 ID:6719 addr:0e29fb18 data:<....@.).........> [00 00 00 00 40 fb 29 0e 00 00 00 00 00 00 00 00] 宜しくお願いします。
Re: 特定サイズの画像ハンドル作成後に強制終了 ( No.7 )
名前:管理人 日時:2012/03/04 20:36

>eikiさん >シスマさん いっちさんがスレッドの最初に掲載してくださった MakeGraph を使用したサンプルプログラムでも 強制終了が発生してしまうのでしょうか?
Re: 特定サイズの画像ハンドル作成後に強制終了 ( No.8 )
名前:eiki 日時:2012/03/05 20:28

先ほど試してみた所、前述したエラーが発生しないようでした。 恐らく遠隔での送受信時に何らかの不具合が起きていたようです。お騒がせしてすみません。
Re: 特定サイズの画像ハンドル作成後に強制終了 ( No.9 )
名前:管理人 日時:2012/03/11 02:53

すみません その後 taru49さんからのご報告から判明したバグで、一定の確率で画像読み込み時に メモリの不正なアクセスをする可能性がありました 修正版をアップしましたので、お手数で申し訳ありませんがこちらをお使いください m(_ _;m http://homepage2.nifty.com/natupaji/DxLib/DxLibVCTest.exe // VisualC++ 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibBCCTest.exe // BorlandC++ 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibGCC_DevCppTest.exe // Dev-C++ 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibGCC_MinGWTest.exe // MinGW 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibMakeTest.exe // ソース (中身を既存のライブラリのファイルに上書きして、BCCをお使いの 場合は『再構築』を、VCをお使いの場合は『リビルド』を、 Dev-C++をお使いの方は「Rebuild All(Ctrl+F11)」をして下さい)

Page: 1 |