‘디버깅’이라는 용어는 여러 다양한 것을 의미할 수 있지만 대부분의 경우 코드에서 버그를 제거하는 것을 의미합니다
전처리 -> 컴파일 -> 링크 -> 빌드
언어 -> 언어
원시코드(소스코드) -> 목적코드
장점) 실행속도가 빠르다
단점) 버그가 터졌을 때 빨리 대응하기 어렵다
장점) 개발자가 실수해도 3초만에 고칠 수 있다
단점) 실시간 번역을 해야하기때문에 속도가 느리다
가벼운 언어는 인터프리터 언어로 만들어도 됨
GNU Compiler Collection
다양한 오픈소스들에 컴파일러를 제공해주는
"컴파일러 갖다쓸거면 너네코드도 공개해!"
중간번역기
LLVB 형태로 바꿔주면 컴파일 가능하도록 만든 시스템
LLVM front-end debugger
우리가 작성한 코드를 LLVM 프로토콜에 맞게 번역하는중 발생하는 오류를 잡기위한 도구?
AA.swift 파일의 23번째 줄에 브레이크 포인트를 설정
breakpoint set --file AA.swift --line 23
(축약형 👉🏻 br s -l 23)
br -M exampleMethod
po view.constraints
po view.backgroundColor = .systemPink