2010-01-12 2 views
1

Visual Studio 2005를 사용하여 Windows Mobile 6 장치에서 .NET Compact Framework C# 응용 프로그램을 디버깅하려고합니다. 이전에 설정 한 중단 점에 도달하면 충돌이 10 번에서 9 번 발생합니다. 처음으로 충돌이 발생하지 않으면 해당 중단 점은 응용 프로그램을 여러 번 실행해도 올바르게 작동합니다.Windows 모바일 장치에서 디버깅 할 때 Visual C# 2005 충돌을 어떻게 중지합니까?

+1

어떤 예외가 있습니까? 좀 더 자세한 정보를 주시겠습니까? –

+0

토글과 동의 함 – Krunal

+0

중단 점을 설정하지 않으면 충돌이 발생합니까? main에 breakpoint를 설정하면 어떨까요? – user227997

답변

0

이 문제는 Visual Studio 2005 서비스 팩 1을 다시 설치 한 후 해결 된 것 같습니다

3

나는 주소 0x00000000015fab774에서 예외 코드가 0xc0000005 (STATUS_ACCESS_VIOLATION)을 얻는다.

기본 예외입니다. 관리되는 응용 프로그램에서는 일반적으로 P/Invoke 중 하나 또는 WindowsCE 사용자 지정 버전의 결함으로 인해 발생합니다.

일부 프린터 코드에는 동일한 문제가 있습니다. 네이티브 예외는 연결된 디버그 중에 발생한 다음 항상 모든 시간이 아니라 때때로 발생합니다. :디. 그것은 생산에서 결코 일어나지 않았다.
실제 문제는 문자열 (문자열에 대한 포인터)을 가져 와서 다음 1024 바이트 이상을 먹는 C++의 나쁜 비트입니다. 문제는 때로는 일부 바이트에 액세스하지 않아야한다는 것입니다. 나는 더 많은 메모리가 사용되거나 호기심 많은 메모리 정렬 시나리오로 인해 디버그 중에 발생했다고 생각한다.
문자열의 길이를 C++ 호출에 전달하여이 문제를 해결하여 다음 1024 개를 맹목적으로 처리 할 필요가 없었습니다.

더 많은 가능성이 0xC0000005가되는 것은 주목할 가치가 있습니다. 일부 매우 도움이되는 사람들은 이러한 가능성 중 일부를 추가했습니다 here.

하위 수준 코드에 액세스 할 수없는 경우 OS 이미지 (일반적으로 제조업체)와 함께 사용하는 하위 수준 구성 요소 제공 업체와 함께이 문제를 해결하는 것이 좋습니다. 이 문제는 해결하기가 어렵습니다. 특히 제조업체가 Symbol, Intermec 또는 Datalogic (formers는 똥 지원을하고 후자는 devs의 대부분을 해고했습니다)의 경우, 직접 수정을 기대하지 않을 것입니다.

+0

불행히도, 그것은 충돌과 액세스 위반을 생성하는 비주얼 스튜디오 자체입니다, 그 자체 때문에 오류가 Visual Studio를 다시 시작할 때까지 괜찮습니다 – Kentaree

관련 문제