質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

87.89%

Visual Studioでステップ実行時にフリーズ

解決済

回答 3

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 5,940

score 7

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台を使用し、リモートデバッグをしています。(上記はターゲット側のものです)


  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 3

checkベストアンサー

0

こんにちは。

Windows 7を1GBytesのメモリで使っていて、しかもHDDの空きが162MBytesはむちゃな気がします。
Windows 7って確か2GBytesはないとマトモに動かないと言われていたと思います。そして、仮想記憶のスワップアウト領域が162MBytesしかないとすると、メモリ不足でにっちもさっちもいかない状態になっているかもしれません。

ところで、私の経験ではサブスレッドのステップ実行はあまりまともには使えないです。何かの拍子で良くハングします。デバッグの時だけなので原因を追求したことはないです。すべてのスレッドを同時に止めないとまともにデバッグできませんが、それが技術的に難しいのかな?となんとなく思ってます。
ですので、マルチスレッドのデバッグは、OutputDebugString()を使うことが多いです。これは排他制御もやってくれるので使い勝手はなかなか良いです。

しかし、まずはHDDの空きを増やすことかと。せめて1GBytesくらいは空けたいところです。(それでやっと仮想記憶領域がメモリと合わせて2GBytesですし。Visual Studioを起動していることを考えるともっと空けたいですね。)

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/08/28 23:51

    ありがとうございます。
    マルチスレッドのデバッグについてとても参考になります。

    キャンセル

0

まず、メモリが1Gということですが、Windows 7 32bit の最低スペックを満たしていない気がします。
それと、ページファイルの領域が足りないとメモリが取得できなくなって破綻しますから、やはりまずはディスクスペースを空けてみるというのはやってみるべきと思います。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/08/28 19:51

    https://support.microsoft.com/ja-jp/help/10737/windows-7-system-requirements
    メモリ1GBはシステム要件を一応満たしているみたいですよ。ただし、ディスクが14.1GBというところが満たしていませんが。

    キャンセル

  • 2016/08/28 19:51

    早速のご回答感謝申し上げます。
    やはりメモリ1Gではスペック不足ですかね・・
    できるだけディスクスペースを開けて試してみます。

    キャンセル

  • 2016/08/28 19:57

    ありがとうございます。
    マイクソフトのページ確認させていていただきました。
    確かに16GBと少し不足していますね。(少しぐらいダメなんですかね・・・?)
    一応自作などではなく、Interface社の製品で顧客より預かっているものなのですが、
    ちょっと確認する必要がありますね。

    キャンセル

0

極限環境でのリモートでバッグはやったことがないのですが、フリーズに規則性がないということから、他の方のおっしゃるようにメモリが少なすぎて動作に支障を来している可能性があります。

少なくともHDDの空き容量を増やしてまとまったサイズのページファイルを確保できる状態にする必要があるかと思います。
他人のPCということでいじれなくてどうしても内蔵HDDに空き容量が確保できない場合は、外付けHDDにページファイルを作るという手もあります。システムの詳細設定の仮想メモリの設定でドライブとサイズを個別に指定することができます。ただし、USBメモリにはページファイルを作れないのでご注意を。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/08/28 23:52

    ありがとうございます。
    外付けハードディスクの導入も検討してみます。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 87.89%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る