トップページ > 記事閲覧
高確率フリーズ
名前:新々月 日時: 2014/03/23 21:50

失礼します。 Windows8.1 + Microsoft Visual C++ 2013において、DXライブラリを使用すると高確率でフリーズします。そのままMSVCや他のアプリを巻き込んでクラッシュするので大変困ります。DXライブラリを使う機会がほぼ無いので放置していましたが、他の人のソースコードを見るときに困ったのでご報告します。他に必要な情報あれば記載します。 ログの方はCOMの初期化で止まっているように見受けられます。
メンテ

Page: 1 |

Re: 高確率フリーズ ( No.1 )
名前:管理人 日時:2014/03/23 23:51

ご報告ありがとうございます。 よろしければ Log.txt の内容をこちらにコピー&ペーストしていただけないでしょうか?
メンテ
Re: 高確率フリーズ ( No.2 )
名前:新々月 日時:2014/03/24 04:54

したいのはやまやまなんですが、完全にクラッシュする場合はMSVCが応答なし→そのまま不正終了してしまうため出来ないのです。すいません。 クラッシュまではいかず、応答なしフリーズ→時間が経って復帰→またフリーズ→応答なしの繰り返しの末安定する場合があり、その場合のを貼り付けておきます。 最初はローエンドで古いグラボだからかと思いましたが…どうやらCOMの初期化、DirectInput関係初期化処理あたりでコケているようです(そこで出力が一旦止まりフリーズ) 起きる頻度ですが、フリーズはほぼ100%起きます。クラッシュは以前3.11bで遭遇した際は2、3回に1回くらいだった気がしますが、今回はもう少し頻度が低いようです。 この'GameProg.exe'は他の方のアプリで、デバッグを手伝うために受け取ったので中身は渡せません。ただ、DXライブラリを初期化して終了するだけのコードでも発生するのを確認しました。 0:システムの情報を出力します 1: DXライブラリ Ver3.11d 2: 論理プロセッサの数 : 4 3: OS Windows8 ( Build 9200 ) 105: CPU動作速度:大体3.27GHz 106: MMX命令を使用します 107: SSE命令が使用可能です 107: SSE2命令が使用可能です 108: CPUベンダ:GenuineIntel 113: CPU名: Intel(R) Core(TM) i3-2120 CPU @ 3.30GHz 113:COMの初期化... 'GameProg.exe' (Win32): 'C:\Windows\SysWOW64\kernel.appcore.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。 'GameProg.exe' (Win32): 'C:\Windows\SysWOW64\uxtheme.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。 'GameProg.exe' (Win32): 'C:\Windows\Downloaded Program Files\CnsMin.dll' が読み込まれました。モジュールがシンボルなしでビルドされました。 'GameProg.exe' (Win32): 'C:\Windows\SysWOW64\version.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。 'GameProg.exe' (Win32): 'C:\Windows\SysWOW64\SHCore.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。 成功しました 175:メモリ総量:8174.41MB 空きメモリ領域:4525.80MB 4525.80MB 176:タイマーの精度を検査します 177:精度結果 更新回数 マルチメディアタイマー:0 パフォーマンスカウンター:60 179: パフォーマンスカウンターを使用します タイマー精度 : 3215.358000 KHz 180: ソフトの二重起動検査... 二重起動はされていませんでした 182:ウインドウクラスを登録します... 登録に成功しました 184:ウインドウモード起動用のウインドウを作成します 187:ウインドウの作成に成功しました 187:ウインドウを表示します 'GameProg.exe' (Win32): 'C:\Users\arata\AppData\Local\Temp\ShellHook.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。 207:IMEを無効にしました 209:ウインドウスタイルをウインドウモード用に変更します... 完了 230:DirectInput関係初期化処理 231: XInput DLL の読み込み中... 'GameProg.exe' (Win32): 'C:\Windows\SysWOW64\XInput1_4.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。 成功 60263: DirectInput7 の取得中... 'GameProg.exe' (Win32): 'C:\Windows\SysWOW64\clbcatq.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。 'GameProg.exe' (Win32): 'C:\Windows\SysWOW64\dinput.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。 'GameProg.exe' (Win32): 'C:\Windows\SysWOW64\hid.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。 'GameProg.exe' (Win32): 'C:\Windows\SysWOW64\setupapi.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。 'GameProg.exe' (Win32): 'C:\Windows\SysWOW64\wintrust.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。 'GameProg.exe' (Win32): 'C:\Windows\SysWOW64\crypt32.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。 'GameProg.exe' (Win32): 'C:\Windows\SysWOW64\msasn1.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。 成功 60330: 引き続き初期化処理... 初期化成功 'GameProg.exe' (Win32): 'C:\Program Files (x86)\Google\Google Japanese Input\GoogleIMEJaTIP32.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。 'GameProg.exe' (Win32): 'C:\Windows\SysWOW64\oleaut32.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。 'GameProg.exe' (Win32): 'C:\Windows\SysWOW64\psapi.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。 'GameProg.exe' (Win32): 'C:\Windows\SysWOW64\dbghelp.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。 60380: ジョイパッドの初期化... 60388: ジョイパッドの初期化は正常に終了しました 60389: マウスデバイスの初期化... 初期化成功 60391: キーボードデバイスの初期化... 初期化成功 60394:DirectInput 関連の初期化は正常に終了しました 'GameProg.exe' (Win32): 'C:\Windows\SysWOW64\msacm32.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。 60399:XAudio2 の初期化を行います 'GameProg.exe' (Win32): 'C:\Windows\SysWOW64\XAudio2_8.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。 'GameProg.exe' (Win32): 'C:\Windows\SysWOW64\avrt.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。 60409: XAudio2_8.dll を使用します 60410: XAudio2 インターフェースの取得と初期化を行います.... 成功 Ver2.8 'GameProg.exe' (Win32): 'C:\Windows\SysWOW64\MMDevAPI.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。 'GameProg.exe' (Win32): 'C:\Windows\SysWOW64\AudioSes.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。 'GameProg.exe' (Win32): 'C:\Windows\SysWOW64\powrprof.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。 60479:XAudio2 の初期化は正常に終了しました 'GameProg.exe' (Win32): 'C:\Windows\SysWOW64\d3d9.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。 60495:DirectDraw オブジェクトの取得を行います.... 'GameProg.exe' (Win32): 'C:\Windows\SysWOW64\ddraw.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。 'GameProg.exe' (Win32): 'C:\Windows\SysWOW64\dciman32.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。 成功 60511:引き続き初期化処理... 'GameProg.exe' (Win32): 'C:\Windows\SysWOW64\aticfx32.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。 'GameProg.exe' (Win32): 'C:\Windows\SysWOW64\atiu9pag.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。 'GameProg.exe' (Win32): 'C:\Windows\SysWOW64\atiu9pag.dll' がアンロードされました 'GameProg.exe' (Win32): 'C:\Windows\SysWOW64\atiu9pag.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。 'GameProg.exe' (Win32): 'C:\Windows\SysWOW64\atiumdag.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。 'GameProg.exe' (Win32): 'C:\Windows\SysWOW64\atiumdva.dll' が読み込まれました。PDB ファイルを開けないか、ファイルが見つかりません。 初期化に成功しました 60627:IDirect3D9 オブジェクトを取得します.... 成功 60668:IDirect3DDevice9 オブジェクトを取得します.... ハードウエア頂点演算を使用します 61023:成功 61034:Driver:aticfx32.dll Description:AMD Radeon HD 5450 61036:画面のフォーマットは D3DFMT_X8R8G8B8 です 61037:16bit Zバッファフォーマットは D3DFMT_D16 です 61045:24bit Zバッファフォーマットは D3DFMT_D24X8 です 61046:32bit Zバッファフォーマットは D3DFMT_D24X8 です 61047:16bit カラーフォーマットは D3DFMT_R5G6B5 です 61049:32bit カラーフォーマットは D3DFMT_X8R8G8B8 です 61050:アルファ付き 16bit カラーフォーマットは D3DFMT_A4R4G4B4 です 61051:アルファ付き 32bit カラーフォーマットは D3DFMT_A8R8G8B8 です 61052:アルファテスト用 16bit カラーフォーマットは D3DFMT_A1R5G5B5 です 61052:アルファテスト用 32bit カラーフォーマットは D3DFMT_A8R8G8B8 です 61053:DXT1テクスチャフォーマットはD3DFMT_DXT1 です 61057:DXT2テクスチャフォーマットはD3DFMT_DXT2 です 61059:DXT3テクスチャフォーマットはD3DFMT_DXT3 です 61060:DXT4テクスチャフォーマットはD3DFMT_DXT4 です 61061:DXT5テクスチャフォーマットはD3DFMT_DXT5 です 61062:描画用 16bit カラーフォーマットは D3DFMT_R5G5B5 です 61063:描画用 32bit カラーフォーマットは D3DFMT_X8R8G8B8 です 61064:描画用アルファ付き 32bit カラーフォーマットは D3DFMT_A8R8G8B8 です 61065:描画用ABGR整数16ビット型カラーフォーマットは D3DFMT_A16B16G16R16 です 61066:描画用ABGR浮動小数点16ビット型カラーフォーマットは D3DFMT_A16B16G16R16F です 61067:描画用ABGR浮動小数点32ビット型カラーフォーマットは D3DFMT_A32B32G32R32F です 61068:描画用1チャンネル整数8ビット型カラーフォーマットは D3DFMT_L8 です 61069:描画用1チャンネル整数16ビット型カラーフォーマットは D3DFMT_L16 です 61070:描画用1チャンネル浮動小数点16ビット型カラーフォーマットは D3DFMT_R16F です 61072:描画用1チャンネル浮動小数点32ビット型カラーフォーマットは D3DFMT_R32F です 61075:描画用2チャンネル整数8ビット型カラーフォーマットは D3DFMT_A8B8G8R8 です 61076:描画用2チャンネル整数16ビット型カラーフォーマットは D3DFMT_G16R16 です 61077:描画用2チャンネル浮動小数点16ビット型カラーフォーマットは D3DFMT_G16R16F です 61078:描画用2チャンネル浮動小数点32ビット型カラーフォーマットは D3DFMT_G32R32F です 61079:一度に描画できるプリミティブの最大数:5592405 61080:対応している最大頂点インデックス:16777215 61081:同時にレンダリングできるバッファの数:4 61082:最大テクスチャサイズ 幅:16384 高さ:16384 61083:テクスチャステージテンポラリレジスタ:使用可 61084:減算合成のハードウェア対応:ネイティブ 61085:ハードウェア頂点シェーダーバージョンコード:300 61086:エミュレーション頂点シェーダーバージョンコード:エミュレーション無し 61087:ピクセルシェーダーバージョンコード:300 61200:バックバッファロック転送の時間:31290nsec 一時的な描画可能バッファを使用した転送の時間:2380nsec 61201:バックバッファロックを使用しません 61202:Zバッファを作成します.... 成功 61308:プログラマブルシェーダーを使用します
メンテ
Re: 高確率フリーズ ( No.3 )
名前:管理人 日時:2014/03/25 01:37

ログの貼り付けありがとうございます 不正終了になる場合は何処で問題が発生しているのか気になりますが、とりあえず ログを拝見する限りでは XInput の DLL をロードするのに異様に時間が掛かっているようです XInput を使用するかどうかを設定するための関数を追加したバージョンをアップしましたので、 よろしければこちらをダウンロードしてください 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/DxLibDotNet.zip // .NET用 http://homepage2.nifty.com/natupaji/DxLib/DxLibMakeTest.exe // ソース (中身を既存のライブラリのファイルに上書きして、BCCをお使いの 場合は『再構築』を、VCをお使いの場合は『リビルド』を、 Dev-C++をお使いの方は「Rebuild All(Ctrl+F11)」をして下さい) 以下の関数を追加しました // Xbox360コントローラの入力処理に XInput を使用するかどうかを設定する // ( TRUE:XInput を使用する( デフォルト )  FALSE:XInput を使用しない ) int SetUseXInputFlag( int Flag ) ; こちらの関数を DxLib_Init を呼ぶ前に FALSE を渡して呼んで下さい、 問題となっている XInput の DLL の読み込みを行わなくなりますので、 恐らくフリーズやクラッシュが発生しなくなると思います
メンテ
Re: 高確率フリーズ ( No.4 )
名前:新々月 日時:2014/03/25 08:53

試したところ起きなくなりました。ご対応有難うございます。 // Debugで識別子が見つからないとコンパイルエラーになります…パス指定は正しいはずなのですが…まぁ困らないので余談で
メンテ
Re: 高確率フリーズ ( No.5 )
名前:管理人 日時:2014/03/27 00:45

> // Debugで識別子が見つからないとコンパイルエラーになります…パス指定は正しいはずなのですが…まぁ困らないので余談で SetUseXInputFlag が見つからないというエラーでしょうか? インクルードフォルダパスやライブラリフォルダパスは Debug と Release で別々に設定できますので、 もしかしたら Release で指定しているインクルードフォルダパスと Debug のインクルードフォルダパスが 異なっているのかもしれません
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存