GDB File format not recognized" error

otto_dev·2021년 6월 19일
0

WSL 환경에서 gdb를 이용해 assembly code를 확인하고자 한다.

문제 발생


위와 같이 간단히 string을 입력받아 출력하는 c code를 작성했다.

gdb로 실행파일 a를 실행했더니 "File format not recognized" error가 발생했다.

file a의 정보를 확인해봤다.


2가지 해결 방법이 있다.

해결방법

32bit로 compile하기

gdb가 32bit이기 때문에 64bit file을 실행하지 못하는 것이다. 따라서 c code를 32bit로 compile한다.

위와 같이 gcc의 -m32 옵션을 통해 32bit로 compile이 가능하다.

만약 fatal error: bits/libc-header-start.h: No such file or directory 발생 시. 다음 명령을 통해 lib를 설치해주자.

sudo apt-get install gcc-multilib g++-multilib

a file의 정보를 다시 확인해보면 32-bit ELF파일로 바뀐걸 확인할 수 있다.


gdb가 파일을 성공적으로 읽었다.

64bit gdb 설치하기

sudo apt-get update -y

sudo apt-get install -y gdb64

위 두 명령을 순차적으로 시행하면 된다.

profile
공부 및 아카이브용 계정

0개의 댓글