10

일부 멀티 스레드 코드를 디버깅하기 위해 VS2010 Beta 2를 사용하고 있습니다. 병렬 스택을 좋아해요.VS2010의 모든 중단 점을 고정 시키십시오.

질문 : 그래도 나는 여러 스레드에서 호출 할 수있는 메서드에 중단 점을 설정했습니다. 일단 중단 점에 도달하면 정말 그 중단 점을 트리거 한 스레드에 초점을 맞추고 싶습니다. 그러나 "step"을 눌렀을 때 VS가 다른 스레드로 전환되는 경우가 있습니다 (스레드 1에서 중단되지만 스레드 2는 중단 점에 도달 함).

스레드 창에서 스레드를 수동으로 고정 할 수 있다는 것을 알고 있습니다. 자동으로 수행 할 수있는 방법이 있습니까? 기본적으로 F-5를 누르기 전까지 중단 점에 도달하면 현재 스레드를 제외한 모든 스레드가 고정됩니다.

+0

네, 그런 비꼬는 말, 특히 평행 한 실이 많은 경우에! 아마도 Kragen이 말한 것처럼 threadID를 기록하고 "Run to cursor"를 사용하여 다음 줄로 진행하십시오. 스레드가 라인에 도달하고 스레드 ID가 추적하지 않는 경우 원하는 스레드를 얻을 때까지 "커서로 실행"을 반복하십시오. 적어도 VS는 쇼 전체에서 뛰지 않을 것이고 계속 포커스를 잃을 것입니다. – Llyle

답변

2

그러나 내가 알고있는 것은 아니지만, 단계별로 진행되는 동안 중단 점을 비활성화 할 수 있습니다.

많은 스레드가 혼란 스러울 때 스레드 창을 열어두고 스레드 ID를 기록하는 경향이 있습니다.

2

디버그 -> 윈도우 -> 스레드에서 스레드 창을로드하는 경우. 중단 점에 도달하면 모든 스레드를 선택하고 "스레드 고정"을 클릭 한 다음 활성 스레드를 다시 시작하고 선택할 수 있습니다. "Thaw threads"를 선택하십시오.

이렇게하면 현재 스레드 만 디버거에서 실행할 수 있습니다.

11

방금 ​​찾고있는 것을 수행하는 Visual Studio 2010 확장을 방금 출시했습니다. 그리고 그것은 무료입니다 :).

프리젠 테이션

이 비주얼 스튜디오 2010 연장 두 개의 바로 가기 및 도구 모음 단추는 멀티 스레드 애플리케이션을 디버깅하는 동안 개발자가 쉽게 하나의 스레드에 집중할 수 있도록 추가합니다.

수동으로 스레드 창으로 이동하여 모든 스레드를 고정/해동 할 필요가 없지만 따라야하는 스레드는 수동으로 이동해야하므로 생산성이 향상됩니다.

가 현재의 thread 만에 추가로 실행을 제한 특징. 다른 모든 스레드를 고정시킵니다. 바로 가기 : CTRL + T + T 또는 Snowflake 버튼. ID를 기반으로 다음 단일 스레드로 전환하십시오. 현재 스레드를 변경하고 다른 모든 스레드를 고정시킵니다. 바로 가기 : CTRL + T + J 또는 다음 버튼.

official page 또는 Codeplex repositoryhere on the Gallery 그것을 확인하십시오.

+0

나는 그것을 조사 할 것이다! 감사! – JMarsch

관련 문제