기능을 나열하지 않습니다 기능 foo
에 관한 정보. gcc는 foo
에 대해 .debug_info
세부 정보를 생성하지 않습니다.objdump를 내가 간단한 86 어셈블리 루틴을 쓴
참고로 .symtab
에 foo
의 입력 사항이 있습니다.
아이디어가 있으십니까?
기능을 나열하지 않습니다 기능 foo
에 관한 정보. gcc는 foo
에 대해 .debug_info
세부 정보를 생성하지 않습니다.objdump를 내가 간단한 86 어셈블리 루틴을 쓴
참고로 .symtab
에 foo
의 입력 사항이 있습니다.
아이디어가 있으십니까?
오류는 objdump 명령에 있습니다. 다음 명령을 사용하여이 함수의 어셈블리 목록을 보여줍니다 :
이제 질문을 업데이트objdump -d -M intel -S asm.o
- 디버그 정보를 포함하려면 다음과 어셈블러 호출 : 이제
gcc -gdwarf2 -c asm.s -o asm.o
을 objdump --dwarf는 디버그 정보를 표시합니다.
아니요 -d 옵션을 사용하는 objdump는 코드를 디스 어셈블합니다. 하지만 나는 - 드워프 옵션에 대해 묻고 있습니다. (질문 제목 업데이트) – Ravi
함수가 호출되지 않습니다. 어쩌면 그것은 죽은 코드로 최적화되어 있을까요? –
@JanHenke 감사합니다. asm.s는 편집 단위 중 하나입니다. 다른 Compilation Unit에 정의 된 main()에서 호출합니다. 그 외에는 gcc 최적화 옵션을 사용하지 않습니다. 그렇지 않으면 심볼 테이블에 나타나지 않습니다. 권리? – Ravi