inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

리눅스 커널의 구조와 원리: 인터럽트 [저자 직강 1부-5]

6.bcmgenet_isr0 인터럽트 핸들러 디버깅-TRACE32 (Part.1)

TRACE32 관련 문의 내용

90

염재영

작성한 질문수 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

김동현 (Austin Kim)

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

-Host OS : Window 11

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

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

image.png

 

감사합니다.

0

염재영

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

0

인프런 AI 인턴

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

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

TRACE32 콜스택 깨짐 현상

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

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

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

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

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

  5. 관련 링크:

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

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

민구님 설치시 또 막혀서 질문드려요

0

32

2

git clone 명령어를 어디 터미널에다 붙여넣어야 하나요?

0

33

2

html 파일을 못 불러 옵니다.

0

33

2

결재했는데도 강좌가 안보입니다.

0

49

1

다음 강의는 언제 올려주시는지요?

0

83

3

T32 Simulator 사용법 질문

0

38

2

안녕하세요. 계속 프로젝트를 해야지 하다가 결제하고 환경 설정 중입니다.

0

33

1

REST API (Self-descriptive messages)

0

46

1

프로젝트 질문 문의

0

85

1

시스템 엔지니어 관련 질문입니다.

0

81

2

SP와 SP_ELn의 관계

0

58

2

Unauthorized 에러

0

80

2

[진로 관련 문의]

0

62

2

inotify 객체에 등록된 watch descriptor 해제 관련 질문

0

58

2

select API 실습 코드 질문

0

60

2

stm32cubeide 관련 문의

0

72

2

강의 슬라이드 문의

0

81

3

만약에 포팅을 할때 1년에 한번 잡는 치명적인 문제를 해결하는 코드가 들어갔다고 가정하면

0

83

2

여러 의문점

1

84

1

72강의 DNS개념(수업자료)에 자료가 없어서 문의 드립니다.

1

83

2

오버라이딩 관련하여 질문드립니다.

0

76

2

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

0

91

2

preemption 체크 관련 질문

0

151

2

인터럽트 처리 순서

0

179

2