tags:

views:

123

answers:

3

I have a C++ program I wrote that behaves differently on one machine in particular and I suspect there are hardware issues with that machine. I was about to begin using the different test programs available for testing the different hardware components (like memtest), but I was wondering if anyone can suggest any good tools or programs that can run a full test of all PC hardware for potential and existing problems.

Thanks for all your help in advance!

+2  A: 

Using IE, you can try running the PC Pitstop benchmarks here:

http://www.pcpitstop.com

PCMark05 Performance Analysis

http://www.futuremark.com/products/pcmark05/

Gordon Bell
+1  A: 

Unless you are using API's or relying on installed components it's unlikely to be hardware or configuration problems, particularly if the other PC shows no issues when running other programs.

Problems like these are often caused by uninitialized variables or accessing invaluid data (e.g <= when accessing an array). In these situations the values used by your program are random and can differ from machine to machine.

One thing you can try is running a debug version of your program on both machines. Under MSVC this causes all allocated memory to be initialized to a known value which is designed to help you track down uninitialized data.

If you're using threads you may also have threading issues that are only apparent on the second machine due to timing differences caused by hardware/processes.

Andrew Grant
+1: my experience is that a lot fewer things are the fault of the hardware or system software than first appear to be.
David Thornley
+1  A: 

In my experience it's extremely unlikely for a hardware problem to manifest in a single application (with the exception of high end games and video card or overheating issues.)

More likely there is some configuration different between the two machines. You can test this using a "diff" tool.

On Windows machines WinMerg is a good way to compare your configuration. You can even use CIFS paths to compare between machines. e.g. \\server1\c$\myapp\config and \\server2\c$\myapp\config

Chris Nava