2013-10-13 3 views
0

디버깅 및 개발 PC에서 잘 작동하는 표준 C++/QT 앱이 있습니다. 클린 PC에서 릴리즈 버전을 시험해 볼 때 실행되지만 기능 (USB 연결을 통해 비디오 보여주기)의 일부는 실행되지 않습니다. 글쎄요, 전에 본적이 있고 내 표준 기술은 디버그 정보를 릴리즈 빌드에 추가하고, 원격 디버깅을 설정하고, 살펴 보는 것입니다. 놀랍게도 디버그 정보 (.pdb)를 사용하여 릴리스 빌드를 실행해도 괜찮습니다. 이전에는 본 적이 없습니다.빌드 빌드 디버깅 문제

dependency walker를 사용하면 종속성에 아무런 문제가 없습니다. Dependency Walker의 일부인 프로파일 러를 사용하면 완벽하게 실행됩니다.

나는 디버깅 기술을 다 써 버렸고 내가 생각할 수있는 유일한 점은 멀티 스레드 응용 프로그램에서 여러 가지 메시지 상자를 추가하는 것이 좋은 생각 인 것 같습니다.

이 문제를 찾는 데 도움이되는 디버깅 기술이 있습니까? 우리는 VS2008과 Qt 4.7.1을 사용하고 있습니다.

답변

1

메시지 상자를 구체화하십시오 - 로그 파일을 사용하십시오.

당신의 설명을 보면 일 수 있습니다. 일정한 종류의 경쟁 조건/타이밍 문제가 있습니다. 어떤 스레드 나 다른 것이 뭔가 관찰되어 느려지면 해결됩니다. 또는 바이너리에 디버그 정보를 추가합니다.

타임 스탬프가있는 로그 파일을 사용하면 일이 언제 일어나는지 추적 할 수 있어야합니다.

+0

WindDebug는 좋은 친구입니다. 디버그 정보와 로깅을 추가하는 것은 초기화되지 않은 변수 인 조건을 최종적으로 찾아 냈습니다. 마침내 그것을 추적하기 위해 2 일 걸렸다. – ExpatEgghead

1

로깅은 여러분의 친구라고 생각합니다. 스레드가 여러 개인 경우 각 스레드를 다른 로그 파일에 기록 할 수 있습니다.