Я использую X-сервер на Linux tutnix 3.13.0-30-generic #54-Ubuntu i686 i686 GNU/Linux
.
На X-сервере я использую schroot, чтобы изменить корень, и после этого я запускаю на нем свое приложение.
Теперь проблема в том, что я пытаюсь запустить gdbserver
(версия 6.7.1) на X-сервере (скажем, на удаленной машине) и gdb
(версия 7.7) на машине с Ubuntu (локальная машина или машина, на которой работает X-сервер), но это не работает.
Это то, что я пробовал до сих пор: -
выполненные ниже команды на удаленной машине
- MY_Application &
- gdbserver localhost: 8888 --attach process_id
выполненные ниже команды на локальной машине
- gdb ./MY_Application
- (gdb) удаленная цель: 8888
Теперь на локальной машине gdb показывает это сообщение
Could not load shared library symbols for 20 libraries, e.g. /usr/lib/libqt.so.3.
Use the "info sharedlibrary" command to see the complete listing.
Do you need "set solib-search-path" or "set sysroot"?
Насколько я понимаю, gdb не умеет загружать разделяемые библиотеки, а их 20 штук. В результате этого я не могу найти символы, присутствующие в этих общих библиотеках.
Я попытался загрузить символы из библиотечных файлов на локальную машину с помощью команды symbol-file
на gdb
, но это приводит к несоответствию адресов.
Поэтому я использовал следующую команду
- (gdb) установить удаленный sysroot:/
но он снова показывает сообщение об ошибке
Could not open 'remote:/usr/local/davis/lib/usr/lib/libqt.so.3' as an executable file: Function not implemented
Может ли кто-нибудь сказать мне, что я делаю неправильно здесь? Если есть альтернативное решение для загрузки символов из общих библиотек, пожалуйста, предложите.
P.S. Оба двоичных файла MY_Application одинаковы.