
[WAIOS] dump_stack 함수 구현
저번 글에서는 qemu와 gdb를 통해 발생한 원인을 추적하는 방법에 대해 배웠습니다. 하지만 정확히 어느 부분이 문제인지 확인하는 것은 수고스러운 일이였습니다. 따라서 손쉬운 디버깅을 위해 WAIOS만의 dump_stack 함수를 구현해보도록 하겠습니다. 우선 구현 결과물은 아래와 같습니다. 위 정보를 통해 b 함수에서 dump_stack 함수가 호출된 것을 확인할 수 있습니다. 실제 문제가 발생한 상황이라면 b 함수를 조사함으로써 조금 더 편리한 디버깅이 될 것입니다. 이제 본격적으로 dump_stack 함수 구현을 해보도록 하겠습니다. 구현은 핵심 컨셉은 Linux의 kallsyms에서 가져왔습니다. 따라서 kallsyms에 대해 알고 있다면 글을 읽는데에 많은 도움이 될 것입니다. kallsysm는 다른 글을 통해 소개한 적이 있으므로 관심이 있으신 분은 아래의 링크를 참고하시면 되겠습니다. Stack trace와 kallsyms 구현 살펴