2012-06-26 11 views
9

私は以下のようにさまざまな場合に異なる動作をするプログラムをvC++で書いています。ビジュアルスタジオF5、ctrl + F5、またはビジュアルスタジオの外では何が違うのですか?

F5で実行すると、リリースモードで正常に動作します。

私がctrl + F5で実行すると、データをプログラムに送信するとクラッシュします。

ビジュアルスタジオの外ではすぐにクラッシュします。

私はバグを見つける方法がわかりません。 についてのアイデアこれらのケースではどのような違いがありますか?

+2

通常の理由は、プログラムの起動方法によって異なるランダム値を取得する初期化されていない変数です。 –

+0

これはenvirment varに依存しますか?どのように私はバグを追跡することができます。 –

+0

環境にもよります。または、別のディレクトリ(ファイルを使用している場合)から起動します。それ以外の場合は、 'int i;'のようなものがあります。ここで 'i'は値が代入される前に使われます。 –

答えて

5

アプリケーションをデバッグモードとリリースモードで実行する場合の違いを理解する必要があります。 F5は通常、アプリケーションのデバッグに役立ち、ctrl + F5はアプリケーションを実行します。リリースモードでは、あなたの対をクラッシュさせるいくつかの問題があるかもしれません。理解を得るためにthisを読んでください。

+0

ありがとう、しかし私のquesionはリリースモード(F5 + ctrl)で崩壊したり、VCから外したり、F5がperoperlyで働いたりするリリースモードに関するものです。 –

+0

@herzlshemuelian:あなたはリリースモードでデバッグしようとしています – Jeeva

+0

このリリースはリリースモード(ctrl + F5とF5ではなく)でしかありません。 –

9

ctrl + F5を実行すると、デバッガなしでアプリケーションが実行されます。 (http://msdn.microsoft.com/en-US/library/8b59xk0f(v=vs.90).aspx) リリースモードでの実行と同じではありません。

アプリケーションをデバッグモードで実行できますが、デバッガは使用できません。 これは愚かに聞こえるが、例えば、終了時にコンソールが閉じるのを止めたい場合に役立ちます。 (How to stop console from closing on exit?

関連する問題