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

[AVR-GDB][C++] Как сделать breakpoint для C++ функции?

Учусь пользоваться 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)

 

Что я делаю на так???

Заранее спасибо за помощь! :)

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


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

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

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

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

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

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

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

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

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

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