質問: Visual studio2013でC#でスレッドを生成し、スレッドから呼び出したMFCのdllをステップ実行で1行づつデバッグ時に、 次のステップに遷移せずフリーズしてしまい、原因がわからず困っています。 dllの関数を複数回よんでいるうちに起る場合があり、場所はビルドするごと?にかわります。 (for文の最後など変なところで遷移が戻ってこなくなります) ※通常に起動したときもフリーズします。 かなり急ぎにもかかわらず今まで無いような現象で原因がわからず、何かヒントだけでもご教示いただけたら幸いです。 --- (気になる点) ・配布用のランタイムを入れたにも拘わらずmsvcp120d.dllとmsvcr120d.dllがないため、(dependancy walkerでチェック) 別途ダウンロードしました。 ・関係あるかわかりませんが、PCスペックは低く、ハードディスクがのこりが少なく、 そのためかわからないですが、 「OS起動時にページングファイル構成に問題が発生したため、一時ページングファイルが作成 されました・・・」の警告が毎回起動時に表示されます。 --- [OS,PC等] Windows7 professional 32bit SP1(Windows Update実施) Visual studio2013 Professional /メモリ1GB /ハードディスク空き 162MB / 14.1GB 画像処理用にグラフィックボード使用 [システム構成] C#(WinForms)からC++(C言語)で作成した(MFCを使用)DLLを呼び出し MFCの設定・・スタティック ライブラリで MFC を使用する DLLでOpenCVライブラリを使用(おそらく静的リンク) ランタイムライブラリの設定・・・マルチスレッド デバッグ (/MTd) [フレームワーク等のインストール状況] .NET Frameworkは4.6.1のみ Microsoft VisualC++ 2013 Restriburable(x86) 12.0.30501 [デバッグ環境] PC2台を使用し、リモートデバッグをしています。(上記はターゲット側のものです) ---
回答: 極限環境でのリモートでバッグはやったことがないのですが、フリーズに規則性がないということから、他の方のおっしゃるようにメモリが少なすぎて動作に支障を来している可能性があります。 少なくともHDDの空き容量を増やしてまとまったサイズのページファイルを確保できる状態にする必要があるかと思います。 他人のPCということでいじれなくてどうしても内蔵HDDに空き容量が確保できない場合は、外付けHDDにページファイルを作るという手もあります。システムの詳細設定の仮想メモリの設定でドライブとサイズを個別に指定することができます。ただし、USBメモリにはページファイルを作れないのでご注意を。