태그 : Trace32 요약보기전체보기목록닫기
- [TRACE32] T32: 현재 레지스터 세트를 저장하기(0)2021.12.31
- [리눅스커널] 디버깅: TRACE32: 모듈 타입 드라이버 심벌(*.ko)을 로딩해 깨진 콜 스택 복원 (7)2021.04.17
- [TRACE32] 메모리 덤프에서 검색(서치)하는 명령어: data.find(0)2020.12.05
- [리눅스커널] TRACE32: 'v.type' 명령어로 구조체와 enum 필드를 바로 확인하기(0)2020.05.20
- [TRACE32] 폰트(FONT) 사이트 변경(2)2020.04.07
- [리눅스커널] 익명 페이지 메모리 누수(Memory Leak) 디버깅 - TRACE32(0)2019.12.16
- [리눅스커널][인터럽트]인터럽트 벡터에서 스택 푸쉬 확인하기(4)2019.04.12
- [리눅스커널][디버깅] 슬럽(슬랩) 캐시 오브젝트 T32로 메모리 디버깅하기(0)2019.03.31
- [리눅스커널] 임베디드 디버거 전설 TRACE32(2)2019.03.21
- [리눅스커널][디버깅] T32(Trace32)로 vmlinux 로딩해 시스템 구경하기 (0)2019.03.13
- crash-utility-dev
- 2021/12/31 07:36
사용 방법do C:\T32\iTSP\save_current_registers.cmm C:\ramdump\linux_vm_dump crash.cmmsave_current_registers.cmm의 구현부;****************************************************************************;** ...
소개실전 디버깅을 하다보면, 종종 모듈 타입 디바이스 드라이버에서 크래시가 발생할 때가 있습니다.크래시가 발생하면 먼저 어떤 콜 스택인지 파악하는 경우가 많습니다. 문제는 이 때 TRACE32로 콜 스택 복원을 시도해도 제대로 콜 스택이 출력되지 않는다는 사실입니다.그 이유는 무엇일까요? 바로 모듈 타입 드라이버의 심벌 정보가 없기 때문입니다.이번 포스...
- [Debugging] Tips
- 2020/12/05 16:00
TRACE32를 사용하다 보면 메모리 덤프에서 특정 데이터를 검색하고 싶은 경우가 있습니다.이 때는 data.find 명령어를 사용하면 됩니다.다음은 TRACE32에서 릴리즈한 data.find 관련 스팩 문서(general_ref_d.pdf)의 내용입니다.Format: Data.Find [<address_range> [%<format&...
- [Debugging] Tips
- 2020/05/20 18:13
소스 코드를 분석 하다보면 구조체와 enum의 정체를 알고 싶을 때가 있습니다.이 때 TRACE32를 활용하면 바로 이 정보를 확인할 수 있습니다.구조체 확인하기먼저 구조체의 세부 필드는 다음과 같은 명령어를 입력하면 확인할 수 있습니다.$ v.type % %m %l %hi %sp struct '구조체 이름'자, 그럼 리눅스 커널에서 프로세스...
- [Debugging] Tips
- 2020/04/07 14:15
아래와 같이 t32 파일을 수정하면 폰트 사이즈를 LARGE로 변경할 수 있습니다.index d07418b..db9c6c9 100644--- a/config-sim.t32+++ b/config-sim.t32@@ -16,7 +16,7 @@ ID=T32 SYS=${2} &nb...
많은 리눅스 시스템 개발자들은 자신이 개발하고 있는 리눅스 커널의 버전이 주류였으면 하는 바램이 있다. 하지만 현실은 다르다. 현재 리눅스 커널의 최신 버전인 4.19(LTS 기준)으로 개발하고 있어도 이전 리눅스 커널 버전에서 다뤘던 자료 구조에 대해 알고 있어야 한다.이번에는 커널 3.10 버전에서 struct anon_vma 구조체와 struct ...
- 5. 인터럽트
- 2019/04/12 10:13
프로세스가 실행되는 도중 인터럽트가 발생하면 인터럽트 벡터로 프로그램 카운터를 브랜치합니다. 인터럽트 벡터가 가장 먼저 하는 일은 무엇일까요? 바로 실행 중인 프로세스의 레지스터 세트를 스택 공간에 저장(푸시)하는 것입니다. 그렇다면 인터럽트 벡터에서 이런 동작을 수행하는 이유는 무엇일까요? 프로세스의 실행 정보를 백업하기 위해서입니다. 이번에...
- Linux Kernel - Core Analysis
- 2019/03/31 00:01
리눅스 커널 동적 메모리 할당을 위해 슬럽 캐시를 씁니다.이번 시간에서는 kmalloc-64 슬럽 캐시 자료 구조를 통해 kmalloc-64 슬럽 오브젝트를 확인하는 방법을 소개합니다.슬럽 캐시 확인하기먼저 kmalloc-size 타입 슬럽 캐시를 관리하는 kmalloc_caches 전역 변수를 보겠습니다.kmalloc_caches 전역 변수의 세부 필...
- 3. 커널 디버깅과 코드 학습
- 2019/03/21 19:23
<< 임베디드 디버거 전설 TRACE32 >>TRACE32(T32)는 임베디드 소프트웨어에서 많이 사용되는 전설적인 디버깅 프로그램입니다. 다른 RTOS 개발에도 활용도가 높은 디버깅 프로그램으로서 대부분의 임베디드 개발자는 TRACE32를 사용할 줄 알고, 많은 고수 개발자들은 T32를 잘 다룹니다. 실전 개발에서 활용도...
- 3. 커널 디버깅과 코드 학습
- 2019/03/13 23:10
T32 시작 명령어 T32 시뮬레이터를 열고 다음 명령어를 입력합시다.sys.cpu cortexa7sys.up 대부분 ARM32 아키텍처는 위 명령어로 T32가 초기화됩니다.T32 명령어로 시스템 점검하기먼저 커널 섹션 정보를 보겠습니다.y.l.sec__________address________|path\section____...
최근 덧글