Перейти к содержанию
    

Удаленная отладка C++ программ на ARM9 (arm-linux-gnu-gdb, gdbserver, Eclipse)

Есть отладочная плата RDK Phytec LPC3250 с установленным gdbserver и ноутбук с Debian GNU/Linux и arm-linux-gnu-gdb.

 

При отладке функция main "прошагивается" нормально, вход по функциям проходит тоже нормально, а вот при попытке входа на строке типа "obj = new Object();" Eclipse открывает окно с заголовком

2 operator new() new

и текстом

Can't find a source file at "/home/usb10132/ct1/bin/targets/src/gcc-4.3.2/libstdc++-v3/libsupc++/new_op.cc" 
Locate the file or edit the source lookup path to include its location.

То есть, как я понимаю, вместо того, чтобы войти в конструктор Object, отладчик пытается найти исходник оператора выделения памяти и это у него ну никак не получается.

 

Отладка просто средствами gdb без Eclipse ведет к тем же результатам (впрочем неудивительно).

 

На всякий случай привожу по шагам процесс настройки отладки:

  1. Отладочная плата Phytec LPC3250

    • установлен gdbserver с помощью системы сборки LTIB
    • запущена отлаживаемая программа командой
      gdbserver 192.168.0.7:6280

      где 192.168.0.7 -- ip-адрес ноута, 6280 -- какой-нить незарезервированный порт.

      Вывод программы следующий:

      Process m2b created; pid = 374
      Listening on port 6280

  2. Ноутбук с Debian GNU/Linux

    • установлены Eclipse и CDT (последних версий на данный момент), система сборки LTIB из CVS, а также отладчик gdb-arm-linux-gnu_6.8-3_i386 отсюда
    • В меню Eclipse Run->Debug Configurations->Debugger проведена следующая настройка:

      • в поле Debugger выбрано 'gdbserver debugger';
      • в табе Main в поле 'GDB debugger указан путь к установленному ARM-отладчику '/usr/bin/arm-linux-gnu-gdb';
      • в табе Shared Libraries указан путь к библиотекам платы (у меня это '/home/raydan/ltib/rootfs/lib', подкаталог монтируемой по NFS корневой ФС)
      • в табе Connection выбран тип TCP, указаны ip-адрес платы и порт для соединения

 

Может у кого-то был опыт отладки C++ программ в схожей ситуации, поделитесь пожалуйста.

 

--

С уважением,

Дмитрий Винокуров

Изменено пользователем Raydan

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Эклипс не находит исходников libstdc++, базовой библиотеки С++ компилятора gcc. Попробуйте этот файл поискать на диске, вдруг путь просто неправильный указан. Как вариант можно скачать исходник gcc 4.3.2, распаковать куда-то, и его туда направить.

У меня есть небольшой опыт отладки ARM9 , но из arm-none-eabi-gdb, через J-link и без линукса.

А может вам собрать для вашего таргета gdb, и запускать непосредственно оттуда, и сервер, и клиент?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Эклипс не находит исходников libstdc++, базовой библиотеки С++ компилятора gcc. Попробуйте этот файл поискать на диске, вдруг путь просто неправильный указан. Как вариант можно скачать исходник gcc 4.3.2, распаковать куда-то, и его туда направить.

У меня есть небольшой опыт отладки ARM9 , но из arm-none-eabi-gdb, через J-link и без линукса.

А может вам собрать для вашего таргета gdb, и запускать непосредственно оттуда, и сервер, и клиент?

 

Так дело в том, что я и не хотел, чтобы он бродил по исходникам стандартной библиотеки. При запуске собранной под x86 версии моей программы исходники libstdc++ ведь не требуются, и отладка идет только в рамках моего кода, то есть как я и хочу.

 

Насчет сборки непосредственно на целевой плате -- а я не уверен что у меня будет место для полновесного gdb, когда с отладочной платы перейду на "боевую". Это сейчас я особо не ограничен в ресурсах.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так дело в том, что я и не хотел, чтобы он бродил по исходникам стандартной библиотеки. При запуске собранной под x86 версии моей программы исходники libstdc++ ведь не требуются, и отладка идет только в рамках моего кода, то есть как я и хочу.

 

Насчет сборки непосредственно на целевой плате -- а я не уверен что у меня будет место для полновесного gdb, когда с отладочной платы перейду на "боевую". Это сейчас я особо не ограничен в ресурсах.

Используйте NFS. Медленно, но зато диск почти неограничен.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...