GCC의 C/C 소스에서 어셈블러 출력 가져오기
컴파일 프로세스를 분석하려면 생성된 어셈블리 코드를 추출하는 것이 필수적입니다. 효과적인 방법 중 하나는 GCC(또는 G)에서 -S 옵션을 사용하는 것입니다.
-S 옵션 사용
-S를 지정하면 전처리기가 다음을 처리합니다. 소스 파일에서 초기 컴파일을 수행하지만 어셈블러를 호출하기 전에 중지합니다. 이를 통해 코드를 어셈블리하기 전에 검사할 수 있습니다. 가독성을 높이려면 -fverbose-asm을 사용하세요.
gcc -S helloworld.c
출력 파일 이름은 기본적으로 helloworld.s로 지정됩니다. 이를 변경하려면 -o 옵션을 사용하십시오.
gcc -S -o my_asm_output.s helloworld.c
기존 개체 파일 분석
객체 파일만 있는 경우 -와 함께 objdump를 사용할 수 있습니다. -disassemble(-d) 옵션.
objdump -S --disassemble helloworld > helloworld.dump
더 자세한 정보를 보려면 -rwC 사용을 고려하세요( 기호 재배치 및 이름 해체), -Mintel(x86의 Intel 구문용) 및 -r(링크되지 않은 개체의 참조 포함).
objdump -drwC -Mintel -S foo.o | less
이러한 방법은 컴파일 프로세스에 대한 귀중한 통찰력을 제공하여 다음을 가능하게 합니다. C/C 프로그램의 어셈블리 코드를 분석합니다.
위 내용은 GCC 및 objdump를 사용하여 C/C 코드에서 어셈블러 출력을 얻으려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!