Наблюдаю непонятное для меня явление, нужно разобраться.
Есть, допустим, такие сущности:
foo.hpp:
Код
class TFoo
{
public:
void Bar();
};
{
public:
void Bar();
};
foo.cpp:
Код
void TFoo::Bar()
{
}
{
}
Если под отладчиком вызвать TFoo::Bar(), получим от eclipse сообщение "No source available for TFoo::Bar()"; однако, если определить Bar непосредственно в определении класса, то все работает нормально. Проблема свойственна всем вызовам C++ методов, определенных не в том же файле, где присутствует его объявление.
Пути IDE прописаны верно; в C все вызовы в другие файлы обрабатываются корректно.
Но при тех же makefile, скрипте линкера и, собственно, исходниках, сборка при помощи KGP решает проблему: вызовы обрабатываются корректно.
Формат dwarf-2, отладка через GDB, платформа ARM7.
Вопрос: как при помощи yagarto получить .elf, позволяющий отлаживать С++ код? Почему KGP собирает правильный .elf? Кто виноват?