KERNEL
Posts
183 posts[리눅스커널][디버깅] dump_stack() 함수
dump_stack() 함수 dump_stack() 함수는 콜스택을 커널 로그로 출력합니다. 커널 로그로 콜스택을 보고 싶은 코드에 삽입하면 됩니다. 이 함수를 호출하려면 C 코드 윗부분에 다음과 같이 "linux/kernel.h" 해더 파일을 추가해야 합니다. #include dump_stack() 함수 선언부를 봅시다.asmlinkage __visible void dump_stack(void); 인자와 반환값 타입이 모두 void입니다. 커널 소스 코드 어디든 dump_stack() 함수만 추가하면 됩니다. dump_stack() 함수로 커널 로그에서 콜스택 확인하기이번엔 dump_stack() 함수를 써서 커널 로그로 콜스택을 볼 수 있는 패치 코드를 소
[리눅스커널][디버깅] printk에 대해서
printk printk는 printf와 유사한 기능입니다. printf는 윈도우 콘솔 프로그램이나 리눅스 시스템 프로그램에서 로그를 출력합니다. 마찬가지로 printk() 함수를 호출하면 커널 로그를 볼 수 있습니다. printk 를 커널 함수에 적절히 추가하면 유용한 디버깅 정보를 얻을 수 있습니다. 리눅스 커널 핵심 함수도 printk를 이용해 시스템 정보를 출력합니다. 커널 핵심 코드에서 printk를 쓰는 예시 코드를 소개합니다.[https://elixir.bootlin.com/linux/v4.14.70/source/arch/arm/kernel/process.c]01 void __show_regs(struct pt_regs *regs)02 {...03 printk("pc : [<%08l
[리눅스커널][가상파일시스템] 파일 객체란
파일 객체대부분 유저는 파일을 생성하고 읽고 쓰기 위한 용도로 씁니다. 이 때 파일 동작에 대한 상세 규칙과 속성은 파일 객체에서 확인할 수 있습니다. 만약 라즈베리파이에서 2개 Geany프로그램에서 1개 파일을 열 수 있습니다. 이 때 몇 개 파일 객체가 생성될까요? 2개 파일 객체는 각각 프로세스 별로 생성합니다. 파일 객체는 이렇게 파일을 오픈하고 읽고 쓰는 상황에서 프로세스가 파일을 관리하기 위해 생성합니다. 파일 객체에 대한 상세 내용은 struct file 구조체에서 확인할 수 있습니다. 다음 소절에서 struct file 구조체에 대해 알아보겠습니다. struc file 구조체 분석 파일 객체는 다음 해더 파일에 정의돼 있습니다.[https://elixir.bootlin.com/linux
[리눅스커널][스케줄링] 크래시 유틸리티로 컨택스트 스위칭 디버깅하기
크래시 유틸리티로 컨택스트 스위칭 디버깅하기 이번에는 크래시 유틸리티를 활용해 컨택스트 정보를 확인하겠습니다. 다음 정보는 ARM 코어에서 실행 중인 프로세스의 레지스터 세트입니다.pc : [<80f65224>] lr : [<80f65bcc>] psr: 0x80f655acsp : 0x9b7dfce8 ip : 0x9b7dfd74 fp : 0x9b7dfd64r10: 0x0 r9 : 0x9f89ea00 r8 : 0x9db8b200r7 : 0x81709294 r6 : 0x9eb07000 r5 : 0x828ea000 r4 : 0xa6b46780r3 : 0x00000000 r2 : 0x036db918 r1 : 0x00000089 r0 : 0x7


![[웹툰단행본] 『통제구역관리부』 1권 후기 : 이상한 변칙과 기이한 일들이 일어나는 공간에 대하여](https://img.zoomtrend.com/2026/06/09/1780996474-SE-5eda86fa-0d63-4afd-b8dd-b801879fed52.jpg)
