pintOS 2주차 Argumuent Passing 중 나타났던 버그나 에러 모음이다. 만약 비슷한 상황에 처해있다면 보고 도움이 되었으면 좋겠다
먼저 나의 환경은 WSL ubuntu 22.04, gcc 11 버전을 사용 중이다. 당연히 window 환경이다
multiple definition
/usr/bin/ld: tests/lib.o:...: multiple definition of `test_name'; tests/userprog/child-xxx.o:...
collect2: error: ld returned 1 exit status
make[1]: *** [../../Makefile.userprog:40: tests/userprog/child-simple] Error 1
make[1]: *** Waiting for unfinished jobs....
아마 make를 진행할 때 lib.h에 정의된 test_name이 중복 정의되어있다고 에러가 발생하는 경우가 있을 것이다. 이때는 gcc 버전을 9로 낮춰주자.
initd.c 커널 패닉
PANIC at ... in initd(): Fail to launch initd
Argumuent Passing 진행 중 나는 정말 로직을 정확하게 작성한 것 같은데 자꾸 이런 커널 패닉이 발생할 때 !!
다음 링크를 참고해보자
https://github.com/Week09-11-Pinots/Pintos-user-program/issues/6
로딩이 안돼요 · Issue #6 · Week09-11-Pinots/Pintos-user-program
WSL 내에서 로딩 관련 에러가 발생함 (initd 커널 패닉) process.c의 process_exec() 내의 load에서 load_segment() 함수를 호출할 때, 서로 다른 세그먼트를 같은 메모리 영역에 할당해 줌 !! load_segment 내의 이
github.com
출력도 다 맞게 나오는데 테스트가 종료가 안돼요
아마 출력도 .ck 파일에 맞게 다 나오는데 무한루프를 돌면서 종료가 되지 않을 때가 있을 것이다. 다음 링크를 참고해서 해결하자
https://github.com/Week09-11-Pinots/Pintos-user-program/issues/3
종료가 안돼요 · Issue #3 · Week09-11-Pinots/Pintos-user-program
thread_exit -> process_exit -> process_cleanup 까지 가도 종료가 안됨
github.com
정말 로딩 에러는 WSL 에서만 발생하는 느낌이다. 팀원들이랑 코드를 계속 다르게 수정해가며 작성할수도 있지만 너무 번거로우니 해결책을 찾아보자
'크래프톤 정글' 카테고리의 다른 글
| [pintOS] 시스템 콜 fork 구현기 (0) | 2025.05.19 |
|---|---|
| [pintOS] 유저 프로그램 실행 흐름 (0) | 2025.05.17 |
| [pintOS] 시스템 콜 과정 (0) | 2025.05.15 |
| 9주차 개발일지 (0) | 2025.05.14 |
| 8주차 개발일지 (1) | 2025.05.07 |