В настоящее время я использую qnx gdb server для отладки приложения, но есть некоторые удивительные вещи.
В моем проекте много файлов, например
src/a.c src/b.c src/c.c
include/a.h include/b.h include/c.h
с использованием MakefileЯ создаю файл libso с именем libtest.so
и именем исполняемого файла helloworld
.
Я вывожу libtest.so
и helloworld
на целевую машину, и путь равен /home/user/myapp/
и хорошо задаю PATH
, и я могу запустить helloworld
на целевой машине
Внимание, в libtest.so
есть забавное имя Display()
, в i nclude/c.h
(в строке 5) есть функция myfun()
, и myfun
вызовет Dislpay()
функцию:
myfun(){Display();}
Когда я использую qnx gdb server, шаг выглядит следующим образом:
1. ntoaarch64-gdb
2. file helloworld
3. target qnx IP:PORT
4. upload helloworld /home/user/helloworld
5. b c.h:5
6. r
Это вызывает остановку на точке останова myfun()
, но когда я запускаю команду step
или stepi
, она не может перейти в функцию Display()
, и я запускаю команду disassemble
, она показывает 0x100cd5e0 <Display@plt>
, Нет никакого разборки содержимого функции Display
, я, кажется, опущен!
Есть какие-либоРабота или пропущенный шаг, когда я отлаживаю это приложение, кто может помочь мне, у меня скорость пять дней ... Большое спасибо
Кстати, я думаю, это вопрос о сервере GDB, а не вопрос о сервере QNX GDB.