2016-07-25 18 views
0

기능을 나열하지 않습니다 기능 foo에 관한 정보. gcc는 foo에 대해 .debug_info 세부 정보를 생성하지 않습니다.objdump를 내가 간단한 86 어셈블리 루틴을 쓴

참고로 .symtabfoo의 입력 사항이 있습니다.

아이디어가 있으십니까?

+0

함수가 호출되지 않습니다. 어쩌면 그것은 죽은 코드로 최적화되어 있을까요? –

+0

@JanHenke 감사합니다. asm.s는 편집 단위 중 하나입니다. 다른 Compilation Unit에 정의 된 main()에서 호출합니다. 그 외에는 gcc 최적화 옵션을 사용하지 않습니다. 그렇지 않으면 심볼 테이블에 나타나지 않습니다. 권리? – Ravi

답변

1

오류는 objdump 명령에 있습니다. 다음 명령을 사용하여이 함수의 어셈블리 목록을 보여줍니다 :

이제 질문을 업데이트
objdump -d -M intel -S asm.o 

- 디버그 정보를 포함하려면 다음과 어셈블러 호출 : 이제

gcc -gdwarf2 -c asm.s -o asm.o 

을 objdump --dwarf는 디버그 정보를 표시합니다.

+0

아니요 -d 옵션을 사용하는 objdump는 코드를 디스 어셈블합니다. 하지만 나는 - 드워프 옵션에 대해 묻고 있습니다. (질문 제목 업데이트) – Ravi