inflearn logo
강의

講義

知識共有

Linuxカーネルの構造と原理:割り込み [著者直講 第1部-5]

6.bcmgenet_isr0 インタラプトハンドラデバッグ-TRACE32 (Part.1)

TRACE32 관련 문의 내용

116

wodud0432886

投稿した質問数 1

0

안녕하세요. 이번 1부- 5강 인터럽트 강의를 듣고 있는 학생입니다.

해당 강의를 들으면서 6. bcmgenet_isr_0 인터럽트 핸들러 디버깅-TRACE32 (Part.1) 를 수강하면서 2-irq-dump 덤프 강의자료로 실습을 진행하는데 TRACE32 의 콜스택이 깨진건지 첨부한 사진과 같이 나옵니다.

처음에는 스택 관련 이슈로 인해서 깨졌다고 생각해서 Crash utility 의 bt -s 명령어 및 log -m 의 출력된 콜스택과 레지스터 셋 정보를 이용해 이전 강의에 들었던 스택 복구를 시도해보았습니다.

하지만 전부 다 콜스택 복구가 안되는것을 확인하여 이것이 어떤 문제인지 궁금해서 질문드립니다.

call_stack_error.png.webp

[해당 2-irq-dump를 Load-Dump - Dump1 으로 불러오면 나오는 화면]

image.png

[불러올때 아래에 뜨는 에러메세지]

말씀드린 것처럼 Crash utility는 정상동작하며, TRACE 32 만 위와 같이 콜스택이 전부 깨져서 나옵니다.
아래는 해당 프로그램을 실행하는 작업환경입니다.
Host OS : Window 11

감사합니다.

linux 운영체제 arm-architecture linux-kernel interrupt irq trace32 callstack출력에러

回答 2

1

austinkim

아래 환경에서 메모리 덤프 (2-irq_dump.zip)을 내려 받아서, TRACE32 시뮬레이터 프로그램으로 로딩을 했습니다.

-Host OS : Window 11

아래 화면과 같이 제대로 로딩이 된 것을 확인했는데요. 1) TRACE32 프로그램을 다시 실행시킨 다음에, 덤프를 로딩하시거나 2) 2-irq_dump.zip 압축 파일이 제대로 풀렸는지 확인 부탁드립니다.

// 아래는 제가 로딩한 TRACE32 프로그램 스틸컷입니다.

image.png

 

감사합니다.

0

wodud0432886

답변 덕분에 잘 해결했습니다! 감사합니다!

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다. 염재영님.

TRACE32에서 발생하고 있는 콜스택 깨짐 현상과 관련하여 아래와 같이 해결 방안을 제안드리겠습니다.

TRACE32 콜스택 깨짐 현상

TRACE32에서 콜스택이 깨져보이는 이유는 여러 가지 요소가 있을 수 있습니다. 특히, 스택 프레임과 스택 포인터가 제대로 설정되지 않았거나, 디버거가 소스 코드의 디버깅 정보를 제대로 해석하지 못하는 경우가 빈번합니다. 다음은 이를 해결하기 위한 몇 가지 제안 사항입니다.

  1. 디버깅 정보 확인:
    TRACE32가 올바른 디버깅 정보(symfiles)를 로드하고 있는지 확인해 보세요. 만약 디버깅 정보가 불완전하거나 누락된 경우에도 콜스택이 제대로 복구되지 않을 수 있습니다.

  2. 스택 프레임 포인터 설정:
    프레임 포인터 레지스터가 잘못되었거나 초기화되지 않은 경우 스택 복구에 문제가 발생할 수 있습니다. 이전에 성공적으로 동작하던 설정과 비교하여 프레임 포인터의 상태를 확인해 보세요.

  3. 버전 호환성:
    TRACE32 디버거와 커널 이미지 및 디버깅 정보(symfiles)의 버전 간의 호환성을 확인하세요. 최신 버전에서 문제가 발생하고 있다면, 이전의 안정 버전으로 돌아가서 테스트하는 것도 하나의 방법입니다.

  4. 환경 변수 및 설정:
    TRACE32의 환경 설정이나 특정 변수 설정이 잘못된 경우가 있을 수 있습니다. 예를 들어, 칩셋이나 타겟 아키텍처와 맞지 않게 설정이 되어 있을 수 있습니다. 관련 설정을 초기값으로 되돌리고 테스트해 보세요.

  5. 관련 링크:

이 문제를 해결하지 못한 경우, 강의의 강사님께 추가적인 정보를 요청하거나 문의하기를 통해 더 전문적인 도움을 받으시는 것도 좋은 방법입니다.

염재영님의 이해를 돕기 위해 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해 드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

ls -al /var/log/nginx

0

23

2

이번강의

0

17

2

버추얼박스 오류

0

23

1

세월이 흘러 문제가 바뀐 것 같습니다.

0

13

2

수업자료는 없나요?

0

10

1

디자인패턴 질문

0

27

2

실습환경

0

26

2

키페어 설정

0

36

2

vi 줄 정렬하신 방법에 대해 문의드립니다.

0

30

1

팩토리 패턴

0

45

2

싱글톤 패턴 구현방법

0

50

2

라이브러리 프레임워크 차이 질문

0

51

1

말이 좀 헷갈립니다 강님

0

34

2

질문답변 부탁드립니다

0

26

1

강의자료 요청

0

22

1

프로젝트 질문 드립니다!

0

41

2

추상화 질문

0

33

2

Armv7 vs Armv8 학습 방향

0

32

1

직렬화 역직렬화 질문 드립니다!

0

50

2

Trace32 function 함수 조회 Makefile 수정 부분

0

30

1

쉘에서 한글 치는방법

0

53

2

강의안 자료는 따로 제공이 안 되나요?

0

103

2

preemption 체크 관련 질문

0

170

2

인터럽트 처리 순서

0

204

2