리눅스 커널 출력을 살펴보면, EIP와 다른 코드 주소는 0xC01 ----- 범위의 값을가집니다. 내 System.map 및 objdump -S vmlinux
출력에서 모든 코드 주소는 적어도 0xC1 ------ 이상입니다. 내 vmlinux에 포함 된 디버그 기호 (CONFIG_DEBUG_INFO)가 있습니다.리눅스 커널 텍스트 심볼
나는 직렬 연결 (KGDB)를 통해 디버깅, 그리고 다시 나는 내가 System.map 및 objdump
출력이 무엇인지에 $ EIP를 조정할 수 없습니다 같은 문제가, gdb ./vmlinux
와 GDB를로드 할 때. 내가 GDB에서 where
을 실행할 때, 나는 스택에 뒤죽박죽 엉망를 얻을 :
#0 0xC01----- in ??()
#1 0xC01----- in ??()
#2 0xC01----- in ??()
...
사람이/이러한 문제를 해결하는 방법에 대한 제안을 할 수 있습니까? 내 주요 관심사는 OOPS의 eip 값을 System.map 또는 objdump -S vmlinux
에 실제로 매핑하는 방법입니다. OOPS가 함수 이름과 객체 코드에 오프셋을 주겠지 만 앞서 언급 한 문제와 gdb가 스택 백 트레이스를 올바르게 표시 할 수없는 이유에 대해 더 우려하고 있습니다.