2009-05-23 2 views
8

나는 때때로 IDE에서 실행 중일 때 갑자기 멈추는 vb.net 프로젝트를 가지고있다. 일반적으로 이것은 문제가되지 않습니다. '일시 중지'를 누르고, 현재 실행중인 스레드를 살펴보고 교착 상태 (또는 기타)를 찾으십시오.디버깅 중에 Visual Studio 2008이 멈추는 원인은 무엇입니까?

하지만 지금은 프로그램이 멈출뿐만 아니라 멈추려 고하는 상황에서 Visual Studio 자체가 중단되는 상황이 발생합니다. 컨트롤을 되찾기 위해 디버깅중인 프로그램의 프로세스를 죽여야합니다. 그 시점에서 Visual Studio는 다시 돌아오고 실행을 일시 중지 할 수 없다고 말합니다. 프로세스를 죽이면 프로그램 상태가 손실된다는 의미이므로 (물론) 인 곳을 알지 못하기 때문에 이것은 실망 스럽습니다.

그래서이 문제의 일반적인 원인은 무엇입니까? 나는 무엇을 찾고 있어야 하는가?

+1

해결 방법을 찾으셨습니까? 나는 정확히 같은 상황에 붙어 ..... ..... – Roey

답변

-1

디버깅중인 프로그램의 코드를 확인하면 디버깅하려는 코드에 무한 루프 또는 경쟁 조건이있을 수 있습니다. 과거의 싱글 코어 랩톱과 비교해 볼 때 특히 그렇습니다. 프로그램에서 일시 중지하려고 할 때 실행이 있다고 생각하는 위치에 대한 정보를 줄 수 있습니까?

+0

글쎄, 나는 sortof 메시지 전달 패러다임을 사용하고있다. 각각의 '올바르게 잠그기 어렵다'클래스에는 다른 클래스가 아무것도하지 못하도록 요청해야하는 호출 대기열이 있습니다. 프로그램은 작은 게임 서버입니다. 잠그면 처리 객체에 수신 된 데이터를 대기열에 넣는 소켓이 여러 개 있습니다.이 소켓은 UI에 일부 로깅 정보를 대기열에 넣고 소켓에 다시 데이터를 씁니다. 그게 나 혼란 스럽네. 잠금을 막지 않으려 고해서 UI를 막아서는 안된다. 내 CPU가 스파이크하지 않기 때문에 무한 대기열 루프를 얻는 것과 같지 않습니다. –

0

핫픽스와 서비스 팩을 확인하십시오. 나는 .net 프로그래밍과 관련된 버그와 디버깅이 멈추는 것을 보았다. (64 비트 OS에서 C++ 32 비트 응용 프로그램을 디버깅 할 때 VS 나를 위해 응답 : ES 때로는.)

3

이 까다로운 일이 될 수있는 비주얼 스튜디오 문제에 대한 특정 수정 프로그램을 찾기 : http://social.msdn.microsoft.com/Search/en-US/?query=visual%20studio%202008%20hang&ac=3

또한,에서 모든 핫픽스 Microsoft는 대중에게 직접 공개됩니다. 일부는 특정 시스템에 문제가있는 고객에게만 제공됩니다. 따라서 Microsoft에 연락하여 문제를 해결해야합니다. 그들은 다른 것을 무너 뜨릴 수있는 핫픽스를 배포 할 때의 잠재적 인 단점을 제한하기 위해이 작업을 수행합니다. 그래서 다른 모든 것이 실패하면, 그들에게 전화하십시오. 비주얼 스튜디오가 연기를 시작할 때 다음

는 내가하고 싶은 다른 것 같습니다

  1. 오래된 중단 점을 삭제하고 변수를 볼. 비주얼 스튜디오가 실행되지와
  2. , IntelliSense를 파일 (.NCB)
  3. 청소 솔루션을 삭제 한 다음 모든 코드의 재 않습니다.
6

프로그램이 프로그램과 통신하는 전역 후크를 설치하는 경우 -이 경우 일 수 있습니다. 후크는 앱과 통신을 시도하며 (디버거에 의해 일시 중지됨) 잠금 상태가됩니다. 그리고 디버거는 창 메시지를받을 수 없습니다 : hooked dll과 hooked app 사이의 고전적인 교착 상태입니다.

+0

지옥, 나는 SetWindowsHookEx를 사용하여 응용 프로그램을 디버깅하는 동안 무엇이 잘못되었는지 알아 내려고 많은 시간을 보냈습니다. 전체 시스템은 각 디버거 단계마다 두 번째 또는 두 번 정지합니다. 후크 호출을 비활성화하면 트릭을 만들 수 있습니다 (약간의 단점 : 디버깅 중에는 후크가 작동하지 않음). 이 팁을 가져 주셔서 감사합니다! – sharpener

+0

그건 그걸 설명 할거야 ... 나는 Excel Add-In 용 WPF를 사용하는 COM 어플리케이션으로 작업 해왔다. 디버거는 중단 점을 맞추거나, 예외를 표시하거나, 디버깅을 중지하는 데 몇 분이 걸릴 수 있습니다. 상당히 실망 스럽다. –

0

방금 ​​디버깅 -> 모든 중단 점을 삭제하여 문제가 해결 된 매우 유사한 문제 (VS가 실행을 중단하지 못함)가있었습니다.

관련 문제