2009-03-18 7 views
2

私が書いたC++プログラムは、特に1台のマシンで異なった動作をします。私はそのマシンにハードウェアの問題があると思う。私はさまざまなハードウェアコンポーネント(memtestなど)をテストするために利用できるさまざまなテストプログラムを使用しようとしていましたが、潜在的および既存の問題のためにすべてのPCハードウェアの完全なテストを実行できる優れたツールやプログラムはありますか?すべてのコンピュータハードウェアをスキャンして問題を発見するツールまたはソフトウェアはありますか?

+0

ハードウェアの問題と思われるものは何ですか?なぜそれはランタイム環境の違いではありませんか? –

+0

ランタイム環境は同じですが、ハードウェアは同一ではないためです。 – BeachRunnerFred

答えて

1

APIを使用しているか、またはインストールされているコンポーネントに依存している場合を除き、特に他のPCが他のプログラムを実行しているときに問題がない場合は、ハードウェアや設定に問題はありません。

これらのような問題は、初期化されていない変数や無効なデータへのアクセス(アレイへのアクセスなど)によって発生することがよくあります。このような状況では、プログラムによって使用される値はランダムであり、マシンごとに異なる場合があります。

試してみることの1つは、両方のマシンでプログラムのデバッグバージョンを実行することです。 Visual C++では、割り当てられたすべてのメモリが、初期化されていないデータの追跡に役立つように設計された既知の値に初期化されます。

スレッドを使用している場合は、ハードウェア/プロセスに起因するタイミングの違いにより、2番目のマシンでのみ発生するスレッドの問題が発生することがあります。 2間の異なるいくつかの設定がある

+0

+1:私の経験では、ハードウェアやシステムソフトウェアの不具合は、はるかに少なくなっているようです。 –

1

私の経験では、それは1つのアプリケーションで明示するために、ハードウェアの問題のために極めてまれだ(ハイエンドゲームやビデオカードまたは過熱の問題を除いて。)

もっと可能性が高いですマシン。これは "diff"ツールを使ってテストできます。

Windowsマシンの場合、WinMergは設定を比較するのに適しています。マシン間の比較にCIFSパスを使用することもできます。例えば\\ server1 \ c $ \ myapp \ configと\\ server2 \ c $ \ myapp \ config

関連する問題