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

 
 
> [AVR-GDB][C++] Как сделать breakpoint для C++ функции?
kurtis
сообщение Sep 18 2008, 15:47
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 466
Регистрация: 21-06-05
Пользователь №: 6 205



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


Что я делаю на так???
Заранее спасибо за помощь! smile.gif
Go to the top of the page
 
+Quote Post

Сообщений в этой теме


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

 


RSS Текстовая версия Сейчас: 24th July 2025 - 07:30
Рейтинг@Mail.ru


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