ebreak

ebreak

RISC-V 어셈블리 참조

lyszt.net은 ebreak 및 기타 RISC-V 명령어를 더 자세히 다룹니다.

설명

ebreak는 프로그램을 중지합니다. 이름은 environment break의 줄임말입니다. 디버거가 제어권을 갖는 지점을 표시하며, 이 시뮬레이터는 해당 줄에서 실행을 중단합니다. 이 형식은 피연산자를 받지 않습니다.

ebreak

프로세서는 그곳에서 멈추고 그 뒤의 줄은 실행되지 않습니다. 레지스터와 메모리는 값을 유지하므로, 중단점에서의 상태를 나중에 검사할 수 있습니다. 서비스 10을 사용하는 ecall은 프로그램을 정상적으로 종료하고, ebreak는 선택한 지점에서 중지합니다.

RISC-V 매뉴얼은 ebreak를 디버깅 환경에 제어를 반환하는 것으로 설명하며, 환경에 서비스를 요청하는 ecall과 함께 정의합니다. 둘 다 정확히 요청된 트랩, 즉 환경으로의 의도적인 제어 이전을 일으킵니다.

예제는 t0를 1로 설정하고 ebreak를 실행합니다. 그 뒤의 li는 결코 실행되지 않으므로 t0는 1로 남습니다.

예시

li t0, 1
ebreak   # the program stops here
li t0, 2   # never reached