2011-03-17 4 views
16

프로그램을 단계별로 디버깅하는 경우가 종종 있습니다. 나는 디버깅 할 섹션의 모든 라인을 멈추기 위해 항상 "step into"버튼을 사용하고, 현재 라인이 있다고 생각되면 다시 클릭하기 만하면된다.MSVC++ 2010에서 단계별 디버깅 중 자동 건너 뛰기 STL 함수

그러나 실제로이 작업 흐름을 방해하는 것은 라이브러리 호출입니다. 문자열 길이 계산이나지도 저장 또는 이와 유사한 것이 있으면 디버거가 일부 STL 파일로 점프하고 계속 진행합니다. 나는 그때 내가보고있는 프로그램으로 건너 뛰기 위해 "jump out"을 눌러야 만한다.

이것은 다음과 같은 의미입니다. 실제로 관심이있는 문서에서 혼란 스럽습니다. 왜냐하면 코드가 갑자기 사라지고 STL 소스가 표시되고 두 번째로 버튼 막대를보고 마우스를 움직여야하기 때문입니다. 내가 뛰어 내렸을 때, 나는 보통 약간 혼란 스럽다.

디버거가 STL 소스 파일을 열 수 없게하는 방법이 있습니까? 어떤 종류의 블랙리스트, 또는 어쩌면 더 우아하게, 어딘가에 어떤 설정? 지금까지 "유일한 코드"설정을 발견했지만 관리 코드에서만 작동하며 기본 코드로 작업합니다.

+0

가능한 복제본 [VS 2008의 일반적인 클래스를 건너 뛸 수있는 방법?] (http://stackoverflow.com/questions/2062881/how-to-skip-common-classes-in-vs-2008- 언제 - 스테핑 - 인) – Suma

답변

12

좋은 질문입니다. 모든 디버거가 끊임없이 뛰어 들고 디버깅 중에 엄청난 속도 저하와 혼란을 겪고 있습니다. 다행히 해결책이있다 :

HKLM\SOFTWARE\Microsoft\VisualStudio\10.0\NativeDE\StepOver 

로 이동, 레지스트리 편집기를 엽니 다 (당신이 64 비트 시스템에서라면 SOFTWARE 후 \의 Wow6432Node를 추가, 이것은 나에게 과거에 두통을 casued).

새 문자열 값 (REG_SZ)을 추가하십시오. 이름은 그렇게 중요하지 않습니다, 나는 명확성을 위해 에게 NoSTL을 사용하고이이 모든 기능을 건너 뛸 수 있도록 그 정규식 일치 아무것도에 단계하지 디버거를 알려줍니다

std\:\:.*=NoStepInto 

에 값의 설정 (글로벌 및 클래스 레벨) std 네임 스페이스에서. StepInto을 사용하면 특정 메서드에 재정의를 추가 할 수 있으며 물론 중단 점을 사용할 수 있습니다. 수시로 들어가서 머리로 결과를 알고있는 자신 만의 방법을 추가하는 것도 편리합니다.

Here 자세한 정보는 NoStepInto에 대한 자세한 내용은 흩어져있는 정보를 참조하십시오.

-1

F10/F11/Shift + F11을 사용하지 마십시오. ??? 그것들은 "넘어서십시오", "들어가다", "빠져 나가십시오"등 유용한 많은 것들이 있습니다. 단추를 사냥하는 것보다 훨씬 유용하며, 소스 코드에서 눈을 뗄 필요가 없습니다.

일반적으로 마우스 대신 Visual Studio에서 바로 가기 키를 사용하면 잘 처리됩니다. 디버깅뿐만 아니라 모든 것이 가능합니다. Learn '안에, 당신은 그들을 사랑합니다! 한 번에 모든 것을 배울 수는 없지만 자주 사용하는 몇 가지 기능을 선택하고 익숙해지며 다른 설정으로 시작하십시오. 시간이 지남에 따라 제 2의 천성이됩니다.

죄송이 오프 주제,하지만 원래의 질문에 아름답게 이미 이전 포스터 응답했다, 나는 뭔가 다른 :) 대답은 위에서 언급

1

도움을 거라고 생각하지만,에 있음

C : 경우 당신은으로 VisualStudio 2017 사용하거나 당신을 위해 작동하지 않았다가 다음을 시도 \의 Program Files (x86)를 \ 마이크로 소프트 비주얼 스튜디오 \ 2017 \ 커뮤니티 \ Common7 \ 패키지는 디버거 \ 비쥬얼을 \

다음 파일을 메모장이나 기타 가지고여십시오.

이 줄을 추가 default.natjmc

: <Function><Name>std\:\:.*</Name><Action>NoStepInto</Action></Function> '이름이'그 파일과 '행동'에서 레지스트리 키 값을 의미는 자명하다. 당신이 너무 레지스트리 키, (이 필요한 경우 확실하지)를 추가하려면

, 당신은 여기에 그것을 발견 할 것이다 : \HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\VSTA\8.0\NativeDE\StepOver 는 적어도, 내 경우 경로이었다. 이것들을 발견하기에 좋은 시간이 걸렸습니다. 그래서 그것이 누군가를 도울 수 있기를 바랍니다. 위와 같이 32 비트 시스템이있는 경우 'Wow6432Node'를 제거하십시오.

+0

내 PC를 다시 설치할 때 나는 이것을 다시했다. 위치는 여전히 Package \ Visualization 폴더였습니다. 레지스트리 키가 필요하지 않았습니다. 그러나 이번에'default.natjmc' 파일 대신에 'default.natstepfilter' 파일에이 줄을 추가해야했습니다. 간단히 말하면, 위에 게시 한 줄과 같은 형식의 파일에 추가하십시오. 설명을 위해 다음 형식을 사용하십시오. std \ : \ :. * NoStepInto' – CorpseDead