I am trying to debug a simple \"hello world\" C++ program on Ubuntu 16.04 but gdb is not able to recognize the executable file format. However, I am able to successfully run
I had the same issue on mac os. there is a bug in gdb: https://sourceware.org/bugzilla/show_bug.cgi?id=23746 their git repository has already had the fix. Unfortunately, the bins in homebrew have not had it yet. So, I had to git clone git://sourceware.org/git/binutils-gdb.git, compiled it and installed as it is described in the readme file. I do believe this will fix yours on ubuntu.
P.S. it works on my machine but I have to run eclipse as root: sudo /.../MacOS/eclipse. Otherwise, I have Launching : Configuring GDB Aborting configuring GDB. Cause I do not know how to fix it (
It is almost certain that ks1322's comment is correct one:
./hello
is a 64-bit binary (use file ./hello
to confirm).x86_64
binaries.The fix is simple: install 64-bit GDB (which is capable of debugging both 32 and 64-bit binaries), or build hello
in 32-bit mode (with g++ -m32 ...
).