Ответ 1
Абсолютно безвредно игнорировать эти "ошибки" при отладке.
Ошибка просто потому, что GDB ищет источник функции strcpy
. Любая функция в libc, для которой у вас нет источника, вы получите аналогичную ошибку, например:
int *p = malloc(sizeof *p);
Тогда...
(gdb) s
5 int *p = malloc(sizeof *p);
(gdb) s
__GI___libc_malloc (bytes=4) at malloc.c:2910
2910 malloc.c: No such file or directory.
Вы всегда можете скачать источник GNU libc и связать его с GDB:
git clone https://github.com/jeremie-koenig/glibc /opt/src/glibc
Тогда...
(gdb) dir /opt/src/glibc/malloc
(gdb) s
5 int *p = malloc(sizeof *p);
(gdb) s
__GI___libc_malloc (bytes=4) at malloc.c:2910
2910 }
(gdb) s
2915 } else if (!in_smallbin_range(size))
..., который позволит вам перейти через исходный код malloc
. Это не особенно полезно, но иногда это может пригодиться.