2012-07-09 6 views
3

저는 저에게 맡겨진 프로젝트로 일하고 있습니다. 건물과 연결 개념의 일부는 저에게 새로운 것입니다. makefile, 여러 어셈블리 및 C 소스 파일, ELF 파일 및 이진 파일이 있습니다. 타겟에 ELF 파일을로드 할 때 어셈블리 파일이 아닌 C 파일 만 단계별로 실행할 수 있습니다.ELF 심볼 테이블에 소스 파일이 누락되었습니다. 어떻게 포함합니까?

내가 ELF 파일에서 readelf를 할 때 어셈블리 (.S) 파일이 기호 테이블에서 누락 된 것을 볼 수 있습니다. 마찬가지로, 내 디버거 (RealView Debugger 4.1)는 "sources from image"트리에 .S 파일을 나열하지 않습니다. 해당 파일의 일부 기호 (예 : 레이블 이름)가 내 readelf 출력에 포함되어 있지만 파일 유형 기호 자체에는 포함되어 있지 않음을 알 수 있습니다. 나는 그들을 포함하지 못했을지도 모르는 것들을 발견하기 위해 makefile을 살펴 보았지만, 내가 무엇을 찾고 있는지 잘 모르겠습니다. 누구든지 올바른 방향으로 나를 가리켜 주시겠습니까? 감사!

+1

Makefile의 armasm에 -g 옵션을 전달하는지 확인하십시오. –

+0

@PeteFordham, 감사합니다. 저는 어셈블러와 C 컴파일러 모두에서 -g를 사용하고 있습니다. – Rich

답변

1

RealView 디버거를 사용하여 언급 했으므로 나는 RVDS를 가지고 있다고 생각합니다. 그렇다면 RVDS, fromelf와 함께 제공되는 readelf 동등 물을 사용하여 시도해 보았습니다. 지금은이를 확인할 방법이 없지만 ARM 컴파일러에서 생성 된 어셈블리 코드와 gcc 간에는 미묘한 차이점이 있음을 기억합니다.