gdb에서 for문에 BP를 걸고 실행하면 for문에서 한 번만 break를 하는 현상을 발견하였다. 하지만 for문은 분명 한 번 이상 돌고, n으로 따라가봐도 for문에서 다시 멈추지만 breakpoint를 hit했다는 문구는 볼 수 없었다.

이를 해결하려면 for문 바로 다음 line에 BP를 걸어야한다. 그 이유는 for문에 BP를 걸면 0x400729에 걸리는데, 이는 m=1로 initialize해주는 부분이다. 따라서 이 부분은 한 번밖에 실행되지 않는게 정상이다.

for문에서 실제로 조건을 비교하는 부분은 0x400965로 컴파일되었고, 이 조건이 true라면 0x400735<main+264>로 점프한다. 따라서 0x400735가 loop를 도는 시작점이라고 할 수 있다.


+ Recent posts