Gdb SIGILL, Illegal instruction


I'm trying to debug my C program using gdb in an OpenWRT QEMU emulator

The programs runs fine when started directly ./program.
But when running from gdb it cannot start and always gives SIGILL Illegal instruction:

root@OpenWrt:/test# gdb ./program
GNU gdb (GDB) 8.3.1
Copyright (C) 2019 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "arm-openwrt-linux".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
Find the GDB manual and other documentation resources online at:

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from ./program...
(gdb) set env LD_LIBRARY_PATH /test
(gdb) run
Starting program: /test/program 
warning: Unable to find dynamic linker breakpoint function.
GDB will be unable to debug shared library initializers
and track explicitly loaded dynamic code.

Program received signal SIGILL, Illegal instruction.
0xb6e29d08 in ?? ()
# uname -a
Linux OpenWrt 4.19.101 #0 SMP Sat Feb 22 18:33:41 2020 armv7l GNU/Linux


ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-, with debug_info, not stripped

Any ideas why gdb may fail?