728x90
반응형
#1 하드웨어 , 소프트웨어 브레이크포인트 차이
브레이크 포인트 : 디버깅을 목적으로 실행중인 프로세스를 의도적으로 멈추게 하는 장소
▶소프트웨어 브레이크 포인트
: 디버깅 진행시 흔하게 사용되는 브레이크 포인트 / 한 바이트의 명령으로 프로세스 실행을 중지시킴
<과정>
Opcode : 명령코드, 명령어에서 실제로 어떤 동작을 하는지 나타내는 부분
CC : INT3 라는 CPU의 256개의 트랩 중 하나를 발생시키는 명령어
INT : CPU가 예외처리를 하기 위해 인터럽트(예기치 않은 일이 발생해도 중단 X, 계속 업무 처리할 수 있게 하는 기능)를 발생시키는 것
브레이크 포인트 설정 ▷ 해당 명령의 Opcode를 브레이크 포인트 리스트에 저장 ▷ 해당 Opcode를 cc로 변경해서 인터럽트 발생시킴 ▷ cc를 통해 브레이크 포인트 걸린 후 진행 ▷ 브레이크 포인트 리스트에서 저장해 놓은 명령으로 Opcode를 다시 바꿈
▶하드웨어 브레이크 포인트 :
디버그 레지스터(DR)을 사용함
코드 변경이 안 되거나 브레이크 포인트 사용이 적을 때 사용하기에 적합함
|
소프트웨어
|
하드웨어
|
코드
|
실행 바이너리의 byte 변경
→ CRC 값이 변경
|
디버깅 할 소프트웨어 코드 변경 X
|
개수
|
브레이크 포인트 횟수 제한 X
|
최대 4개까지의 브레이크 포인트
|
|
INT3 발생
|
INT1 발생
|
+ CRC : 순환 중복 검사 (데이터 변경되었는지 확인)
728x90
반응형
'SYSTEM' 카테고리의 다른 글
프로세스, 스레드 차이 (0) | 2023.01.05 |
---|---|
세마포어, 뮤텍스 차이 (0) | 2023.01.05 |
멀티바이트, 유니코드 (0) | 2023.01.05 |
PE (0) | 2023.01.03 |
VA, RVA, RAW (0) | 2023.01.03 |