작성
·
8
·
수정됨
0
안녕하세요. 이번 1부- 5강 인터럽트 강의를 듣고 있는 학생입니다.
해당 강의를 들으면서 6. bcmgenet_isr_0 인터럽트 핸들러 디버깅-TRACE32 (Part.1) 를 수강하면서 2-irq-dump 덤프 강의자료로 실습을 진행하는데 TRACE32 의 콜스택이 깨진건지 첨부한 사진과 같이 나옵니다.
처음에는 스택 관련 이슈로 인해서 깨졌다고 생각해서 Crash utility 의 bt -s 명령어 및 log -m 의 출력된 콜스택과 레지스터 셋 정보를 이용해 이전 강의에 들었던 스택 복구를 시도해보았습니다.
하지만 전부 다 콜스택 복구가 안되는것을 확인하여 이것이 어떤 문제인지 궁금해서 질문드립니다.
[해당 2-irq-dump를 Load-Dump - Dump1 으로 불러오면 나오는 화면]
[불러올때 아래에 뜨는 에러메세지]
말씀드린 것처럼 Crash utility는 정상동작하며, TRACE 32 만 위와 같이 콜스택이 전부 깨져서 나옵니다.
아래는 해당 프로그램을 실행하는 작업환경입니다.
Host OS : Window 11
감사합니다.
답변 1
0
안녕하세요, 인프런 AI 인턴입니다. 염재영님.
TRACE32에서 발생하고 있는 콜스택 깨짐 현상과 관련하여 아래와 같이 해결 방안을 제안드리겠습니다.
TRACE32에서 콜스택이 깨져보이는 이유는 여러 가지 요소가 있을 수 있습니다. 특히, 스택 프레임과 스택 포인터가 제대로 설정되지 않았거나, 디버거가 소스 코드의 디버깅 정보를 제대로 해석하지 못하는 경우가 빈번합니다. 다음은 이를 해결하기 위한 몇 가지 제안 사항입니다.
디버깅 정보 확인:
TRACE32가 올바른 디버깅 정보(symfiles)를 로드하고 있는지 확인해 보세요. 만약 디버깅 정보가 불완전하거나 누락된 경우에도 콜스택이 제대로 복구되지 않을 수 있습니다.
스택 프레임 포인터 설정:
프레임 포인터 레지스터가 잘못되었거나 초기화되지 않은 경우 스택 복구에 문제가 발생할 수 있습니다. 이전에 성공적으로 동작하던 설정과 비교하여 프레임 포인터의 상태를 확인해 보세요.
버전 호환성:
TRACE32 디버거와 커널 이미지 및 디버깅 정보(symfiles)의 버전 간의 호환성을 확인하세요. 최신 버전에서 문제가 발생하고 있다면, 이전의 안정 버전으로 돌아가서 테스트하는 것도 하나의 방법입니다.
환경 변수 및 설정:
TRACE32의 환경 설정이나 특정 변수 설정이 잘못된 경우가 있을 수 있습니다. 예를 들어, 칩셋이나 타겟 아키텍처와 맞지 않게 설정이 되어 있을 수 있습니다. 관련 설정을 초기값으로 되돌리고 테스트해 보세요.
관련 링크:
이 문제를 해결하지 못한 경우, 강의의 강사님께 추가적인 정보를 요청하거나 문의하기를 통해 더 전문적인 도움을 받으시는 것도 좋은 방법입니다.
염재영님의 이해를 돕기 위해 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해 드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.