2009-03-18 6 views
2

필자는 필자가 작성한 C++ 프로그램이 특히 하나의 컴퓨터에서 다르게 작동합니다. 그 기계에 하드웨어 문제가 의심됩니다. 다른 하드웨어 구성 요소 (예 : memtest)를 테스트하는 데 사용할 수있는 여러 가지 테스트 프로그램을 사용하려고했지만 잠재적 인 문제와 기존 문제에 대한 모든 PC 하드웨어의 전체 테스트를 실행할 수있는 좋은 도구 나 프로그램이 있습니까?모든 컴퓨터 하드웨어를 검사하여 문제를 일으키는 도구 또는 소프트웨어가 있습니까?

+0

하드웨어 문제가 의심스러운 이유는 무엇입니까? 왜 런타임 환경 차이가 될 수 있습니까? –

+0

런타임 환경이 동일하지만 하드웨어가 동일하지 않기 때문에. – BeachRunnerFred

답변

1

API를 사용하거나 설치된 구성 요소에 의존하지 않는 한, 특히 다른 PC가 다른 프로그램을 실행할 때 다른 PC에 문제가없는 경우 하드웨어 또는 구성 문제가 발생할 가능성이 없습니다.

이러한 문제는 종종 초기화되지 않은 변수 또는 잘못된 데이터 액세스 (예 : 어레이 액세스)로 인해 발생합니다. 이러한 상황에서 프로그램에서 사용하는 값은 임의적이며 컴퓨터마다 다를 수 있습니다.

시도 할 수있는 한 가지 방법은 두 컴퓨터에서 프로그램의 디버그 버전을 실행하는 것입니다. Visual C++에서 할당 된 모든 메모리는 초기화되지 않은 데이터를 추적하는 데 도움이되도록 설계된 알려진 값으로 초기화됩니다.

스레드를 사용하는 경우 하드웨어/프로세스로 인한 타이밍 차이로 인해 두 번째 시스템에서만 발생하는 스레딩 문제가있을 수 있습니다. 하드웨어 문제는 하나의 응용 프로그램에서 발현하는데 내 경험에

+0

+1 : 내 경험에 따르면 하드웨어 또는 시스템 소프트웨어의 결함이 처음으로 나타나는 것보다 훨씬 적습니다. –

1

은 매우 확률이 낮다 (하이 엔드 게임과 비디오 카드 또는 과열 문제를 제외합니다.) 둘 사이에 다른 어떤 구성이 더 가능성이

있다 기계. "diff"도구를 사용하여이를 테스트 할 수 있습니다.

Windows 컴퓨터의 경우 WinMerg은 구성을 비교하는 좋은 방법입니다. CIFS 경로를 사용하여 시스템을 비교할 수도 있습니다. 예 : \\ server1 \ c $ \ myapp \ config 및 \\ server2 \ c $ \ myapp \ config

관련 문제