본문 바로가기

[pintOS] 버그/에러 모음

@정소민fan2025. 5. 17. 12:57

 

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
정소민fan
@정소민fan :: 코딩은 관성이야

코딩은 관성적으로 해야합니다 즐거운 코딩 되세요

목차