2016-07-01 3 views
0

내 시나리오 내가 일하는 곳에서 VB6 앱을 지원하고 있으며 지난 몇 주 동안 이전보다 자주 충돌이 시작되었습니다. 다른 유형의 저장소에 대해 로컬 Access MDB 데이터베이스와 원격 SQL Server DB를 모두 사용합니다. 좋은 소식은 우리가 교체 용 앱을 쓰고 있으며, 그동안 내가이 앱을 지원해야하는 밴드 뉴스이며 공급 업체가이 세상에서 벗어났다는 것입니다.VB6 디버깅 - 컴파일 된

충돌을 일으키는 원인을 진단하고 진단 할 수있는 방법은 무엇입니까? 예를 들어 지금까지 필자는 ODBC 추적 (MDB 구성 요소의 경우), SQL 프로파일 러 추적 및 클라이언트 PC의 ProcMon을 시도했습니다.

충돌이 발생했을 때 앱이 무엇을하려고했는지 알아 내려고 할만한 다른 프로그램이 있습니까?

+0

오류 메시지가 표시되지 않습니까? 그냥 멈추거나 사라지나요? 단일 사용자 또는 여러 명? – topshot

+0

너무 모호한 오류가 발생합니다. 존재하는 경우 VB6 오류가 표시되지 않습니다. 각각 로컬 MDB와 중앙 SQL – Paul

+0

을 가진 여러 사용자가 Access 손상을 의심했지만 여러 로컬 데이터베이스에서 발생하지는 않습니다. 그것은 내가 처리 할 수없는 SQL 서버에 대한 새로운 종류의 새로운 네트워크 문제 또는 점점 더 많은 컴퓨터에 배포 된 최근 업데이트를 생각하게 만듭니다. VB6 오류는 표시되지 않지만 "막연한"오류가있는 것 같습니다. 그들은 모두 7 승 64 패를 얻었습니까? – topshot

답변

1

디버거에서 시작할 수도 있습니다.

windbg 또는 ntsd (ntsd는 콘솔 프로그램이며 아마도 설치 될 수 있습니다). 둘 다 Windows 용 디버깅 도구에서도 제공됩니다.

http://msdn.microsoft.com/en-us/windows/hardware/hh852363

윈도우

에 대한

다운로드 및 설치 디버깅 도구는 Windows SDK를 설치하지만, 단지 디버깅 툴을 선택합니다.

는 C에서 기호라는 폴더를 만듭니다

\

시작을 Windbg를. (g 프로그램을 계속) 기호 파일 경로 및

srv*C:\symbols*http://msdl.microsoft.com/download/symbols 

다음

windbg -o -g -G c:\windows\system32\cmd.exe /k batfile.bat 

당신은 그것을 중지 F12를 눌러 입력하고 kb이 호출 스택을 표시합니다 - 메뉴 파일. 오류가 있으면 중지하고 표시합니다.

유형 lm는 기호를 나열하려면 x *!*을로드 된 모듈을 나열하고 bp symbolname은 중단 점

사용 db address (즉 메모리에 무엇을 참조하십시오 db 01244에있다.

경우 VB6 프로그래밍이 환경을 설정하는 변수 link=/pdb:none은 별도의 파일이 아니라 dll에 심볼을 저장합니다. No Optimisations로 프로그램을 컴파일하고 심볼 디버그 정보 만들기 상자를 선택하십시오. 프로젝트 등록 정보의 컴파일 탭에서 모두

+0

사과, 나는 더 명백해야 했음에 틀림 없다. 이 응용 프로그램의 소스를 기호로 다시 컴파일 할 필요가 없습니다. – Paul

+0

아니요,하지만 Windows는 자신의 전화를 위해 자신의 기호를 사용합니다. –

+0

프로그램이 Windows 코드에서 시간의 90 %를 소비합니다.VB 프로그램은 VB 런타임에서 대부분의 시간을 소비합니다. 따라서 코드는 실행중인 코드의 몇 퍼센트에 불과합니다. 기호는 VB 런타임에서 사용할 수 있습니다. Windbg은 Windows 용 기호를 다운로드합니다. 심볼은 라이브 플러스를 훨씬 더 쉽게 만들지 만 필요하지는 않습니다. 플러스 당신은 충돌 세부 사항을 얻을 것이고 그것이 추락 한 곳. 성공 가능성은 거의 없지만 질문에 답할 것입니다 * * 어디에서 충돌합니까? *. –

관련 문제