GCC의 C/C 소스에서 어셈블러 출력 액세스
컴파일 프로세스를 분석하려면 생성된 어셈블리 코드를 추출하는 것이 유용한 경우가 많습니다. . 이는 GCC를 사용하여 두 가지 방법으로 달성할 수 있습니다.
-S 옵션 사용:
gcc 명령에 -S 옵션을 추가하면 전처리기가 호출됩니다. , 초기 컴파일이 발생합니다. 그러나 조립 단계 이전에 프로세스가 중단됩니다. 일반적으로 file_name.s라는 이 부분 컴파일 출력에는 원본 C/C 소스에 해당하는 어셈블리 코드가 포함되어 있습니다.
objdump 사용:
객체만 파일을 사용할 수 있으면 objdump 유틸리티를 사용하여 어셈블리 코드를 추출할 수 있습니다. --disassemble (-d) 옵션을 추가하면 objdump가 개체 파일의 디스어셈블리를 생성합니다. 디버그 정보(-g 사용)를 사용하여 컴파일을 수행한 경우 가독성을 높이기 위해 소스 행이 디스어셈블리와 인터리브됩니다.
예:
gcc -S source_file.c objdump -S --disassemble object_file.o > assembly_output.txt
gcc의 -S 옵션은 source_file.s라는 어셈블리 파일을 생성합니다. objdump 명령은 가능한 경우 소스 라인이 포함된 개체 파일의 디스어셈블리를 포함하는 Assembly_output.txt라는 텍스트 파일을 생성합니다.
출력 사용자 정의를 위한 추가 objdump 옵션은 다음과 같습니다.
위 내용은 GCC를 사용하여 C/C 소스에서 생성된 어셈블리 코드에 어떻게 액세스할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!