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

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

新規登録して質問してみよう
ただいま回答率
85.48%
MFC

MFC (Microsoft Fouondation Class)とは、MicrosoftがVC++用に開発したWindows用アプリケーションのフレームワークです。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Visual Studio 2013

Microsoft Visual Studio 2013は、Microsoftによる統合開発環境(IDE)であり、多種多様なプログラミング言語に対応しています。 Visual Studio 2012の次のバージョンです

Q&A

解決済

3回答

9088閲覧

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

Ry0_

総合スコア7

MFC

MFC (Microsoft Fouondation Class)とは、MicrosoftがVC++用に開発したWindows用アプリケーションのフレームワークです。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Visual Studio 2013

Microsoft Visual Studio 2013は、Microsoftによる統合開発環境(IDE)であり、多種多様なプログラミング言語に対応しています。 Visual Studio 2012の次のバージョンです

0グッド

0クリップ

投稿2016/08/28 10:12

編集2016/08/28 10:49

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


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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

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

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

投稿2016/08/28 12:31

catsforepaw

総合スコア5938

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Ry0_

2016/08/28 14:52

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

0

ベストアンサー

こんにちは。

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

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

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

投稿2016/08/28 11:57

Chironian

総合スコア23272

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Ry0_

2016/08/28 14:51

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

0

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

投稿2016/08/28 10:42

編集2016/08/28 10:44
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Ry0_

2016/08/28 10:51

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

2016/08/28 10:57

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問