реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Удаленная отладка C++ программ на ARM9 (arm-linux-gnu-gdb, gdbserver, Eclipse)
Raydan
сообщение Jul 30 2009, 05:09
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 15
Регистрация: 11-04-09
Из: Пермь
Пользователь №: 47 498



Есть отладочная плата 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 - Jul 30 2009, 05:28
Go to the top of the page
 
+Quote Post
Jameson
сообщение Aug 14 2009, 14:49
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 25
Регистрация: 25-08-05
Пользователь №: 7 947



Эклипс не находит исходников libstdc++, базовой библиотеки С++ компилятора gcc. Попробуйте этот файл поискать на диске, вдруг путь просто неправильный указан. Как вариант можно скачать исходник gcc 4.3.2, распаковать куда-то, и его туда направить.
У меня есть небольшой опыт отладки ARM9 , но из arm-none-eabi-gdb, через J-link и без линукса.
А может вам собрать для вашего таргета gdb, и запускать непосредственно оттуда, и сервер, и клиент?
Go to the top of the page
 
+Quote Post
Raydan
сообщение Aug 20 2009, 05:00
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 15
Регистрация: 11-04-09
Из: Пермь
Пользователь №: 47 498



Цитата(Jameson @ Aug 14 2009, 18:49) *
Эклипс не находит исходников libstdc++, базовой библиотеки С++ компилятора gcc. Попробуйте этот файл поискать на диске, вдруг путь просто неправильный указан. Как вариант можно скачать исходник gcc 4.3.2, распаковать куда-то, и его туда направить.
У меня есть небольшой опыт отладки ARM9 , но из arm-none-eabi-gdb, через J-link и без линукса.
А может вам собрать для вашего таргета gdb, и запускать непосредственно оттуда, и сервер, и клиент?


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

Насчет сборки непосредственно на целевой плате -- а я не уверен что у меня будет место для полновесного gdb, когда с отладочной платы перейду на "боевую". Это сейчас я особо не ограничен в ресурсах.
Go to the top of the page
 
+Quote Post
voyt
сообщение Sep 28 2009, 10:24
Сообщение #4


Частый гость
**

Группа: Свой
Сообщений: 75
Регистрация: 31-07-06
Из: Москва
Пользователь №: 19 223



Цитата(Raydan @ Aug 20 2009, 09:00) *
Так дело в том, что я и не хотел, чтобы он бродил по исходникам стандартной библиотеки. При запуске собранной под x86 версии моей программы исходники libstdc++ ведь не требуются, и отладка идет только в рамках моего кода, то есть как я и хочу.

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

Используйте NFS. Медленно, но зато диск почти неограничен.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 08:38
Рейтинг@Mail.ru


Страница сгенерированна за 0.01371 секунд с 7
ELECTRONIX ©2004-2016