원하는 심볼에 브레이크 포인트를 걸고 Go를 하였는데 브레이크가 걸리지 않습니다.
TRACE32
"원하는 심볼에 브레이크 포인트를 걸고 Go를 하였는데 브레이크가 걸리지 않습니다." 에 대한 답변입니다.
심볼을 통해 브레이크를 걸 때 가장 중요하게 확인해야 할 부분은 현재 다운로드 받은 이미지와 심볼이 같은 시점에 만들어진 것인지 확인해야합니다. 타겟 보드에 올라가 있는 이미지와 심볼이 다른 것이라면 심볼의 주소 번지가 실제 이미지와 일치 하지 않을 가능성이 큽니다. 이 외에도 현재 디버깅 환경이 멀티코어 디버깅 환경인지를 잘 확인해야 합니다. 단일 코어(0번 코어만)만 사용하는 환경이면 상관 없지만 멀티 코어 환경에서는 디버깅하고자 하는 심볼(코드)이 어느 코어에서 동작 할지 예상하는 것은 매우 어렵습니다. Onchip 브레이크 포인트 경우에는 각 코어별로 브레이크포인터 주소번지를 세팅하기 때문에 모든 코어가 다 세팅되어야 정상적인 브레이크포인트 세팅이 가능합니다. 만약 0번 코어만 붙어 있는 환경에서 브레이크를 건다면 0번 외의 코어에서 코드가 동작될 시에는 브레이크가 걸리지 않습니다. 이 외에도 Software로 브레이크 포인트를 거는 경우에는 삽입한 TrapCode가 메모리 free나 allocate에 의해 삭제될 가능성이 있습니다. 이러한 경우에는 브레이크포인트 자체가 삭제되기 때문에 브레이크가 걸리지 않습니다.