Я написал простую C-программу для печати Hello World.Затем я запустил его через
aarch64-linux-gnu-gcc -ohello hello.c -static -g3
gdb-multiarch hello
После этого я run
и GDB обнаружил внутреннюю ошибку:
Reading symbols from hello...done.
(gdb) r
Starting program: /home/gt/hello
/build/gdb-GT4MLW/gdb-8.1/gdb/i387-tdep.c:592: internal-error: void i387_supply_fxsave(regcache*, int, const void*): Assertion `tdep->st0_regnum >= I386_ST0_REGNUM' failed.
A problem internal to GDB has been detected,
further debugging may prove unreliable.
Quit this debugging session? (y or n)
Вот вывод file hello
:
hello: ELF 64-bit LSB executable, ARM aarch64, version 1 (GNU/Linux), statically linked, for GNU/Linux 3.7.0, BuildID[sha1]=a...b, with debug_info, not stripped
Это мой hello.c
:
#include<stdio.h>
int main(){
printf("hello world");
return 0;
}
Что я делаю не так?Что еще мне нужно сделать?Я запускаю Ubuntu 18.04 на компьютере x86_64.
Когда я использую gdb hello
, я не могу использовать точки останова, я получаю эту ошибку:
Reading symbols from hello...done.
(gdb) break 4
Breakpoint 1 at 0x400404: file hello.c, line 4.
(gdb) r
Starting program: /home/gt/hello
Warning:
Cannot insert breakpoint 1.
Cannot access memory at address 0x400404
(gdb)
Я следую инструкциямна этой странице под первым разделом.