Closed chphch closed 5 years ago
프로그램이 죽는 시점에 ts->state에 있는 값을 printk로 확인해보시겠어요?
p-> state = ts->state
없이 printk만 하면 문제 없이 모두 화면에 찍힙니다.
커널이 죽는 시점에 창이 너무 빨리 위로 올라가서 그 순간의 값을 확인하기 어려운데 다른 방법이 있을까요?
Ctrl+a 누르시고 esc누르시면 위로 올라간 창을 볼 수 있어요
네 위 학생분 말씀도 맞고, 추가로 p->state = ts->state 전후로 확인을 위해 printk("string")을 넣으셨다면 타이젠 쉘에서 dmesg | grep "string" 수행하셨을 때, "string"이 있는 라인을 확인할 수 있습니다.
또, 이 에러 관련해서 디버깅 방향을 p의 할당 (kmalloc) 등이 제대로 되었는지 확인하시는 쪽으로 가셔야할 것같습니다. prinfo buffer의 크기는 prinfo struct size * NR이 되어야합니다.
task_struct에서 prinfo로 데이터를 옮기는 코드에서 커널 패닉이 발생하는 것 같습니다. 어떤 문제일 가능성이 있을까요?
read_lock, read_unlock 처리는 했습니다.