리눅스 2

ftrace란?

Ftrace란? ftrace는 리눅스 커널에서 제공하는 가장 강력한 트레이서이다. 트레이서의 특징은 다음과 같다. 인터럽트, 스케줄링, 커널 타이머 등의 커널 동작을 상세히 추적한다. 함수 필터를 지정하면 지정한 함수를 호출한 함수와 전체 콜 스택까지 출력한다. 물론 코드 수정이 없다. 함수를 어느 프로세스가 실행하는 지 알 수 있다. 함수가 실행된 시각 정보를 알 수 있다. ftrace 로그를 활성화해도 시스템 동작에 부하를 거의 주지 않는다. Ftrace 설치 방법 ftrace는 리눅스 커널의 공통 기능이고 라즈비안이 아닌 다른 리눅스 시스템에도 지원한다고 한다. 라즈비안에서는 아래의 패치코드를 통해서 활성화를 할 수 있다. /arch/arm/configs/your_device_defconfig CO..

커널 디버깅 - printk

C언어의 printf와 같은 기능으로 커널에서 사용하는 출력 함수입니다. 자료형의 서식지정은 C언어의 printf와 동일합니다. * printk로 포인터를 출력하고 싶으면 %p를 쓰면 됩니다. 책의 예제에 따라 커널 소스 중 일부를 수정했다. static void insert_wq_barrier(struct pool_workqueue *pwq, struct wq_barrier *barr, struct work_struct *target, struct worker *worker) { struct list_head *head; unsigned int linked = 0; // 수정내용 printk("[+] process: %s\n", current->comm); printk("[+][debug] messag..