오늘의 질문
#07 · 빈칸 다섯 개
질문
은재: "hello.o를 objdump로 열었더니 printf를 부르는 줄이 e8 00 00 00 00이에요. 바로 다음 줄을 부르는 거잖아요. 그런데 실행 파일은 멀쩡하게 hello를 세 번 찍어요. 그 사이에 누가 고쳐 놓은 거예요?"
오늘 알아낼 것
gcc 한 줄 뒤에서 차례로 도는 전처리, 컴파일, 어셈블, 링크와 로더를 hello.c로 따라간다. 목적 파일의 빈칸 다섯 개를 누가 어떤 값으로 채우는지 직접 계산하고, 프로세스의 메모리 배치를 본 뒤, -O0·-O1·-O2가 같은 함수를 얼마나 다르게 만드는지 흉내 CPU로 센다.
새솔대 공학관 5층 실습실 · 화요일 밤 디버거 교실
10월 20일 화요일 밤, 공학관 5층 실습실. 은재가 노트북을 돌려 화면을 보여 줍니다. objdump -d hello.o의 한 줄이 call 3c <main+0x3c>, 바로 다음 명령어를 부르고 있습니다.
도현이 어깨 너머로 봅니다. "링크 전이라 그런 거 아냐? 어차피 과제는 -O0으로 하면 돼. -O2는 디버깅만 어렵게 하잖아."
윤 조교가 의자를 끌어옵니다. "둘 다 추측이네. 오늘은 gcc를 한 번에 부르지 말고 네 번에 나눠 불러 보자. 단계마다 파일을 열어 보면 누가 빈칸을 채우는지 보여."
1~3교시는 누구나 볼 수 있고, 4교시부터는 무료 회원이면 끝까지 볼 수 있어요.
로그인하면 어디까지 봤는지 저장되고, '내 강의'에서 이어 볼 수 있어요. 가입비는 없어요.
카카오에서 닉네임만 받아 와요. 개인정보 처리방침
새 교시·새 강의 소식 받기
이 강의에 새 교시가 더해지거나 이어지는 강의가 열리면 이메일로 알려 드려요.
R
ReflexKR
눌러 보며 배우는 파이썬과 Reflex. 모든 예제는 Reflex 0.10.0에서 직접 실행해 확인했습니다.
ReflexKR은 배너 광고 없이 무료로 운영돼요. 도움이 되셨다면 커피 한 잔으로 응원해 주세요.
© 2026 ReflexKR · Since 2026 · CC BY-NC 4.0
질문과 답변
이 교시에서 궁금한 점을 남겨 주세요. 모든 언어 페이지의 질문이 함께 모입니다.