제목이 좀 거창하게 길긴한데… 별거 없는 내용이다;;
아래와 코드를 보자… 1번 때문에 뭐가 비었으면 그냥 리턴이다.
그런데, 이렇게 1번에서 true를 반환해서 3번으로 가버리도록 짠 로직이 실수라고 하자.
그러면, 지금 Shift+F5를 눌러서 2번으로 가도록 코드 수정 후에 재시작 해야만 하나?
Instruction Pointer를 실시간에 바꿀 수만 있다면 어디서든지 로직의 흐름을 제어할 수 있지 않을까?
… 해서 알아보았다
일단 코드를 디스어셈블리로 보자…
1번에서, When Brakpoint Is Hit 다이얼로그를 열어 아래와 같이 설정하면 가능할까?
불행히도, 1번에서 IP를 바꿔봤자 소용이 없었다. -_-ㅋ
하지만, 2번에서 EAX의 값을 바꾸면…
1번 조건 검사를 무시하면서, 원하는 위치인 3번으로 이동 가능하다.
참고로, WBIH는 매우 유용하다. 기본적인 기능이 막강한 것도 있지만…
변수에 값을 대입하는 기능 외에도 함수호출도 가능하다는 사실을 아시는지??
반드시 MSDN을 참고해보길 바란다…^^;
'Debug' 카테고리의 다른 글
Magic debug values (0) | 2011.09.03 |
---|---|
Debug variables about STL (0) | 2011.08.18 |