강의

멘토링

로드맵

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của wodud0432886
wodud0432886

câu hỏi đã được viết

Cấu trúc và nguyên lý của nhân Linux: Ngắt (Interrupt) [Bài giảng trực tiếp từ tác giả Phần 1-5]

6.bcmgenet_isr0 gỡ lỗi trình xử lý ngắt-TRACE32 (Part.1)

TRACE32 관련 문의 내용

Viết

·

72

·

Đã chỉnh sửa

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-architecturelinux-kernelinterruptirqtrace32callstack출력에러

Quiz

51% người trả lời sai. Hãy thử ngay!

Công cụ chính nào được sử dụng hiệu quả để gỡ lỗi các thuộc tính ngắt chi tiết thông qua kernel memory dump?

TRACE32

gdb

Crash Utility

perf

Câu trả lời 2

1

austinkim님의 프로필 이미지
austinkim
Người chia sẻ kiến thức

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

-Host OS : Window 11

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

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

image.png

 

감사합니다.

wodud0432886님의 프로필 이미지
wodud0432886
Người đặt câu hỏi

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

0

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

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

TRACE32 콜스택 깨짐 현상

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

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

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

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

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

  5. 관련 링크:

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

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

Hình ảnh hồ sơ của wodud0432886
wodud0432886

câu hỏi đã được viết

Đặt câu hỏi