У меня есть относительно простое приложение (со ссылками на другую простую библиотеку), которое не позволяет мне удаленно отлаживать его с помощью gdb. Я проверил, совпадают ли версии gdb и gdbserver. На самом деле это даже одна и та же ОС (ubuntu) на обеих машинах. Кажется, он успешно загружает символы из исполняемого файла. Так что я немного растерялся, что может быть не так. Любые предложения приветствуются. Вот расшифровка из gdb:
dev:/fast/git/archive/foo$ gdb /fast/git/foo
GNU gdb (Ubuntu 7.11.1-0ubuntu1~16.04) 7.11.1
Copyright (C) 2016 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
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 "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /fast/git/foo...done.
(gdb) target remote test1:5000
Remote debugging using test1:5000
Reading /lib64/ld-linux-x86-64.so.2 from remote target...
warning: File transfers from remote targets can be slow. Use "set sysroot" to access files locally instead.
Reading /lib64/ld-linux-x86-64.so.2 from remote target...
Reading symbols from target:/lib64/ld-linux-x86-64.so.2...Reading /lib64/ld-2.23.so from remote target...
Reading /lib64/.debug/ld-2.23.so from remote target...
(no debugging symbols found)...done.
0x00007ffff7dd7cc0 in ?? () from target:/lib64/ld-linux-x86-64.so.2
(gdb) bt
#0 0x00007ffff7dd7cc0 in ?? () from target:/lib64/ld-linux-x86-64.so.2
#1 0x0000000000000003 in ?? ()
#2 0x00007fffffffce02 in ?? ()
#3 0x00007fffffffce2f in ?? ()
#4 0x00007fffffffce32 in ?? ()
#5 0x0000000000000000 in ?? ()
Ах, так интересно. Я до сих пор не уверен, почему, но он печатает только это (фиктивная трассировка стека) при подключении. Если я затем «продолжу», он с радостью напечатает правильные символы, если я вызову перерыв.
Странно... может быть, это отчасти ошибка пользователя, но я ожидал, что он запустится и сломается при запуске на main, когда я подключился.