kurtis 0 18 сентября, 2008 Опубликовано 18 сентября, 2008 · Жалоба Учусь пользоваться avr-gdb, пытаюсь поставить точку остановка на функцию, член-класса. По ССЫЛКЕ написано что нужно указывать аргументы принимаемые функцией, т.е. например так (gdb) break TestClass::testFunc(int) Breakpoint 1 at 0x80485b2: file cpptest.cpp, line 16. Но когда я пытаюсь проделать аналогичные операции со своим классом, то отладчик выдает следующее сообщение (gdb) break EndItem::showMenu(void) Function "EndItem::showMenu(void)" not defined. Make breakpoint pending on future shared library load? (y or [n]) n Возможно проблема связана с тем что класс EndItem наследует общий базовый класс, в котором присутствуют виртуальные функции. В сокращенном виде описание классов(базового и производного) выглядит следующим образом namespace Menu { class BaseClass { public: virtual void showMenu() = 0; BaseClass() : returnItem (0), forwardItem (0) {}; virtual ~BaseClass() {}; }; class EndItem : public BaseClass { private: //..Что-то обьявляем public: virtual void showMenu() { //..Что-то делаем }; EndItem(void (*_ShowCurrenMenu)(void), const char * _MenuName) : ShowCurrenMenu ( _ShowCurrenMenu ) { }; virtual ~EndItem() {}; }; } //namespace Насколько я все понял, то такойзапрос должен быть правильным (gdb) break Menu::EndItem.showMenu(void) т.е. я указал пространство имен ( Menu ), указал класс который меня интересует ( EndItem ) и указал функцию класса ( showMenu() ). но оно все-равно выдает Function "Menu::EndItem::showMenu(void)" not defined. Make breakpoint pending on future shared library load? (y or [n]) n Тоже самое пишется, когда я пытаюсь сделать точку останова для функции, принадлежащей обьекту типа EndItem, например Menu::EndItem lmSetDevs ( .... ); (gdb) break lmSetDevs.showMenu(void) Что я делаю на так??? Заранее спасибо за помощь! :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться