2

데모를 보려면 following section of this video을 살펴보십시오.Visual Studio에서 디버깅하는 동안 명령 포인터를 뒤로 드래그

a)이이 Intellitrace 관련 및 "역사 디버깅"이다

는 기본적으로, 나는 이것이 궁금 비주얼 스튜디오 커뮤니티 에디션 2015 년 수 알아? b) 이렇게 할 때 부작용이 있습니까? 아니면 지침을 거꾸로 옮기는 것입니까?

+0

단순히 명령 포인터를 이동합니다. 확실히 부작용이있을 수 있습니다. 소스에서 보이지 않는 필수 코드는 건너 뛸 수 있습니다. 좋은 예가 [여기에 있습니다] (http://stackoverflow.com/questions/28896531/clr-system-nullreferenceexception-when-forcing-set-next-statement-into-if-bl). –

답변

2

명령 포인터를 뒤로 이동하는 것만으로도 자신의 단어를 사용할 수 있습니다.

  • 모든 부작용이 이미로 드래그 어디 사이에 발생한 이미 발생시킨에서 그것을 끌어 반전되지 않습니다 여기서

    이는 것을 의미한다. 동일한 명령 섹션에서 변경

  • 모든 변수는 여전히 변경됩니다, 그들은 그들이 당신은 그래서 당신은이 디버깅 지원을 사용할 수 있습니다

에 명령 포인터를 드래그 점에서 가졌던 값으로 환입하지 아니합니다 (예를 들어 건너 뛴 if 문 안쪽으로 명령 포인터를 드래그하여) 실행하지 않으려는 경로를 건너 뛰거나 (실행하고 싶지 않은 코드를 지나서 명령 포인터를 드래그하여) 프로그램을 강제로 실행하거나 일부 코드를 재실행하십시오.

하지만 이어야하며 위의 제한 사항을 알고 있어야합니다. 코드를 다시 실행하는 것이 안전하지 않은 경우 그렇게하면 디버그하는 데 도움이되지 않습니다.

+0

감사! 권장되는 방법입니까? 나는 그것을 사용하지 않을 때를 포함하여이 기능에 관해 무엇이든 찾을 수 없었다. – anemaria20

+1

"권장 연습"은 내가 항상하는 것처럼 추천 할만한 것으로 들리지만,이 기능 중 하나가 아닙니다. 그러나 일부 코드를 다시 실행하거나 건너 뛰는 것 이외의 옵션이없는 경우가 있으므로이 함수를 사용하는 방법, 수행 할 수있는 것과 수행 할 수없는 방법을 분명히 배워야합니다. 예를 들어 전체 프로그램을 다시 실행하여 중단 점에 도달 한 지점으로 돌아가려면 2-3 분이 걸릴 수 있습니다. 그런 다음 코드를 "시작"하기 전에 한 걸음 더 나아간 다음 간단하게 포인터를 다시 드래그하고 F11 키를 눌러서 무엇이든 들어갑니다. –

+0

감사합니다. 앞으로 나아가는 것은 어떨까요? 나는 이것이 가능하다는 것을 알았다. 거꾸로하는 것과 똑같은 방식으로 진행한다면, 나는 이것이 고토 진술과 같다고 상상할 수있다. – anemaria20

0

오랫동안 계속되었습니다. 커서를 드래그하는 지점에서 일어난 모든 일이 이미 발생 했으므로 본질적으로 다시 수행 할 것입니다.

무언가를 처리하거나 데이터베이스에 저장하지 않는 한 실제 데이터가 없습니다. 동일한 기존 데이터를 쓰면 예외가 발생하거나 일부 데이터 처리가 엉망이 될 수 있습니다.

설정 한 모든 변수는 (커서를 초기화하는 것보다 높게 드래그하더라도) 커서를 위로 드래그 한 지점의 값을 그대로 유지합니다.

관련 문제