TRACE32

포스트: 30|조회수: 0|ARTIFACT
Items

Posts

30 posts

[리눅스커널][디버깅] 슬럽(슬랩) 캐시 오브젝트 T32로 메모리 디버깅하기

Guillermo Austin Kim|2019년 3월 30일

리눅스 커널 동적 메모리 할당을 위해 슬럽 캐시를 씁니다.이번 시간에서는 kmalloc-64 슬럽 캐시 자료 구조를 통해 kmalloc-64 슬럽 오브젝트를 확인하는 방법을 소개합니다. 먼저 kmalloc-size 타입 슬럽 캐시를 관리하는 kmalloc_caches 전역 변수를 보겠습니다. kmalloc_caches 전역 변수의 세부 필드는 다음과 같습니다. (static struct kmem_cache * [14]) kmalloc_caches = ( [0] = 0x0, [1] = 0x0, [2] = 0xF1401E00, // "kmalloc-192" [3] = 0x0, [4] = 0x0, [5] = 0x0, [6] = 0xF1401F00 -> (

[리눅스커널][디버깅] 임베디드 디버거 전설 Trace32

Guillermo Austin Kim|2019년 3월 21일

임베디드 디버거 전설 Trace32 Trace32(T32)는 임베디드 소프트웨어에서 많이 쓰고 있는 전설적인 디버깅 프로그램입니다.다른 RTOS 개발에도 Trace32를 많이 쓰고 있으며 대부분 임베디드 개발자는 Trace32를 다룰 줄 압니다. 실전 개발에서는 너무나 유명하고 인기 있는 디버깅 프로그램이니 신입 개발자들은 잘 숙지하도록 합시다. Trace32는 여러 가지 강력한 디버깅 기능과 다양한 명령어를 지원합니다.세부 내용은 이 책의 범위를 넘어서므로 다루지 않습니다. 실전 개발에 적용할 수 있는 Trace32 사용법(커널 크래시 디버깅)은 저의 개인 Youtube 채널로 방문하면 됩니다. 이 책에서는 Trace32 시뮬레이터 기능을 활용해 커널 자료 구조를 소개합니다. 신입 개발자가 참고할만

[리눅스커널][디버깅] T32(Trace32)로 vmlinux 로딩해 시스템 구경하기

Guillermo Austin Kim|2019년 3월 13일

T32 시작 명령어 T32 시뮬레이터를 열고 다음 명령어를 입력합시다.sys.cpu cortexa7sys.up 대부분 ARM32 아키텍처는 위 명령어로 T32가 초기화됩니다. T32 명령어로 시스템 점검하기 먼저 커널 섹션 정보를 보겠습니다.y.l.sec__________address________|path\section___________________________|acc|init|physical P:00000000--0000001F|\\vmlinux\.vectors |R-X|L- | P:00001000--000012BF|\\vmlinux\.stubs |R-X|L- | P:C0008000--C

[리눅스커널][디버깅] 크래시 유틸리티로 vmcore를 T32(Trace32)에 로딩하기

Guillermo Austin Kim|2019년 3월 13일

소개 크래시 유틸리티는 리눅스 커널 개발에서 인기 있는 디버깅 툴입니다. 특히 search 명령어로 메모리 서치를 할 수 있는 막강한 기능을 제공합니다. 하지만 프로세스별 콜스택을 이동하면서 지역변수를 볼 수 있는 기능이 없어 조금 불편합니다. 이번 포스팅에서 vmcore에서 스택 덤프를 추출해 T32 시뮬레이터로 콜스택을 올려 보는 방법을 소개합니다. 크래시 유틸리티로 프로세스 스택 메모리 덤프하기 "./crash64 vmcore vmlinux" 명령어로 크래시 유틸리티를 실행합니다.austindh.kim~/backup/Vmcore_dump$ ./crash64 vmcore vmlinux crash64 7.1.9++Copyright (C) 2002-2017 Red Hat, Inc.Copyrigh