ページ 11

Visual C++ 2012 Express のブレークポイントが変

Posted: 2013年1月20日(日) 20:52
by dic
また、新しいものに手をだしてしまいました

Visual C++ 2012 Express のことなのですが、
ブレークポイントを設定して、デバック実行して、ブレークポイントで処理がとまることを想定していたのですが、
OSごとフリーズに近いくらい、動作が止まってしまい、2回目は、タスクマネージャを起動して
CPU使用率を見てみると、CPU使用率すら停止してしまうくらい、つかいものになりません。
サービスパック1が出ていたので、さっそくサービスパックを当てても、修正されていなくて、
ブレークポイントを使ったデバックが、事実上できない状態です。

どう対処すれば、ブレークポイントを使ったデバックができるようになるのでしょうか?
DrawFormatStringでも値は表示できるのですが、指定条件でストップとかできないので困っています

Re: Visual C++ 2012 Express のブレークポイントが変

Posted: 2013年1月20日(日) 21:48
by へにっくす
Visual Studio Express 2012 for Windows Desktop
のことですかね?
こちらでは問題ないのですが…
まさかOSはXPじゃないよね?(動作対象外)
パソコンのスペックと、ヘルプメニューのバージョン情報でコピーしたものをはってください。
ちなみに私のは以下です。
スペック:
Windows 7 Professional Service Pack 1 (64ビット)
CPU: Intel(R) Core(TM) i5 CPU
メモリ: 4GB

コード:

Microsoft Visual Studio Express 2012 for Windows Desktop
Version 11.0.50727.42 VSLRSTAGE
Microsoft .NET Framework
Version 4.5.50709

インストールされているバージョン: Desktop Express

Team Explorer for Visual Studio 2012   05695-004-0030004-?????
Microsoft Team Explorer for Visual Studio 2012

Visual Basic 2012   05695-004-0030004-?????
Microsoft Visual Basic 2012

Visual C# 2012   05695-004-0030004-?????
Microsoft Visual C# 2012

Visual C++ 2012   05695-004-0030004-?????
Microsoft Visual C++ 2012

NuGet パッケージ マネージャー   2.0.30717.9005
Visual Studio の NuGet パッケージ マネージャー。NuGet の詳細については、http://docs.nuget.org/ を参照してください。

SQL Server Data Tools   11.1.20828.01
Microsoft SQL Server Data Tools
問題が起きるコードも貼ったほうがいいかな?

Re: Visual C++ 2012 Express のブレークポイントが変

Posted: 2013年1月21日(月) 00:04
by salsaww
Expressではないので、なんともですが、
当方Windows7 64bit のVisual Studio 2012 Professional update1では、問題無くブレークポイントが行えます。
前述の方も言われている通り、もう少し、環境と実行コードについて情報がひつようかと思います。

Re: Visual C++ 2012 Express のブレークポイントが変

Posted: 2013年1月21日(月) 00:06
by ISLe
ウチでも発生します。

DXライブラリを使ったプログラムに限りますが。
ProcessMessageを使った単純なループで発生します。

対処法は分かりません。

Windows 7 64bitで、Intel Core 2 Duo E6850です。

Re: Visual C++ 2012 Express のブレークポイントが変

Posted: 2013年1月21日(月) 00:08
by softya(ソフト屋)
私は、VC++2008でもデバッガで操作可能になるまで軽く5秒から10秒ほど待ちます。
DXライブラリ限定の事象です。

Re: Visual C++ 2012 Express のブレークポイントが変

Posted: 2013年1月21日(月) 00:17
by ISLe
根拠はないですが…
スレッド一覧を見るとDxLib::ThreadRunFunctionというスレッドが大量に生成されているので、そのあたりに原因があるような気がします。
一般的にマルチスレッドプログラムではブレークポイントが鬼門で、完全にハングアップすることも珍しくないですから。

だとすれば相性問題なので、Visual C++ 2010以前のほうがマシであればそちらを使うしか仕方がないと思います。

Re: Visual C++ 2012 Express のブレークポイントが変

Posted: 2013年1月21日(月) 00:28
by salsaww
割と、多い症状みたいなので、軽く考察してみると、
以下のような要因が考えられると思います。
・anti-Virusなど後ろで動いているのソフトが悪さをしている。
 切る事で解決
・正しいデバック情報が捕まえられてない。
 Intellisenceなどが急激に稼働。(これもintellisenceを切れば解決?)
 または、自前でlibをコンパイルする。
・グラフィックボードの正しくない情報書き換えが行われている。
 Windowsモード最初から最後まで通してるとフリーズが起こらない
・Thread関係がうまく対応できてない。
 Intelのコンパイラー、デバッカーをつかうとか???

Re: Visual C++ 2012 Express のブレークポイントが変

Posted: 2013年1月21日(月) 01:12
by softya(ソフト屋)
DXライブラリだとgcc版とbcc版があるので、そちらに切り替えるのも手です。
それか大丈夫だったバージョンに戻るかですね。

ちなみにアンチウィルスをこの間、ウィルスバスターからカペルスキーに切り替えたのですがやはり待たされます。
若干待ち時間は変わった気もしますが、待ち時間があることには変わりありません。

【補足】
ちなみに何を持って最新というかですが、C++11への対応度だとgccの方が上ではなかったでしょうか?

Re: Visual C++ 2012 Express のブレークポイントが変

Posted: 2013年1月21日(月) 07:16
by dic
みなさん回答ありがとうございます

Visual C++ 2012 Express for Desktop ですね

パソコンのスペックは
Windows 7 Home Ediition
CPU: core i5 なんたら
メモリ:2G

Microsoft Visual Studio Express 2012 for Windows Desktop
Version 11.0.51106.01 Update 1
Microsoft .NET Framework
Version 4.5.50709

インストールされているバージョン: Desktop Express

Team Explorer for Visual Studio 2012 05695-004-0030004-02812
Microsoft Team Explorer for Visual Studio 2012

Visual Basic 2012 05695-004-0030004-02812
Microsoft Visual Basic 2012

Visual C# 2012 05695-004-0030004-02812
Microsoft Visual C# 2012

Visual C++ 2012 05695-004-0030004-02812
Microsoft Visual C++ 2012

NuGet パッケージ マネージャー 2.0.30717.9005
Visual Studio の NuGet パッケージ マネージャー。NuGet の詳細については、http://docs.nuget.org/ を参照してください。

SQL Server Data Tools 11.1.20828.01
Microsoft SQL Server Data Tools


問題は確かに DxLibを使うとフリーズに近い状態になりますね
通常のWindowプロシージャを書いているのは、問題ないですね


最新というのは、製品として最新という意味です


いろいろやってみます

Re: Visual C++ 2012 Express のブレークポイントが変

Posted: 2013年1月21日(月) 07:36
by dic
DxLibをつかって、ブレークポイントをセットして、ウオッチで変数の値を見ようとしたら
フリーズに近い状態になりますね
ウォッチを使わなければ、問題ないです
動かないことはないですが、10秒~30秒またされて、使い物になりません

DxLibを使わない WindowProc( HWND hwnd, ...
を自前で実装すると、問題ないです
同様にコンソールも問題なかったです

バージョンをさげて、Visual C++ 2010 で試したら、ブレークポイントとウォッチはうまくいきます
私、個人の調査なので、全部うのみにしないでください

Re: Visual C++ 2012 Express のブレークポイントが変

Posted: 2013年1月21日(月) 11:16
by softya(ソフト屋)
どうしてもVC++2012でなければ成らない理由がないのなら2008や2010で十分だと思います。
そんな事より新しいものって言うのなら止めはしませんが、プログラムを作るという観点からは本末転倒な気がします。

Re: Visual C++ 2012 Express のブレークポイントが変

Posted: 2013年1月21日(月) 17:25
by ISLe
ウチの場合は、ブレーク直後は固まりません。
ウォッチウィンドウの操作も問題ないです。

トレースや実行の継続、あるいはブレークポイントの削除をするとデスクトップが数十秒固まります。

マウスカーソルは動くのでグリグリ動かしているとしばらくして操作に合わせてピープ音がプ・プ・プ…と鳴り始めます。
この現象はWindows 95とかのころシステムリソースが不足したときにしばしば発生してたものと同じではないかと思います。
ウィンドウズがウィンドウメッセージを送出できなくなると発生する現象なのでマルチスレッドが原因ではないかと考えたのですが。