Модераторы: xvr
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Локальные переменные в конструкторе, Не отобрадаются переменные в дебагере 
V
    Опции темы
ller
  Дата 7.8.2009, 12:20 (ссылка)   | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 325
Регистрация: 4.8.2008
Где: г. Таганрог

Репутация: нет
Всего: 4



Реалезую класс небольшой.
вот фрагмент кода конструктора 
Код

Mesh::Mesh(int numX, int numY, double step)
{
    strMesh *head = 0;
    strMesh *temp = 0;


Если начать в отладчике пошагово его выполнять и попробовать просмотреть значение этих переменных то получаю сообщение 
Код

No symbol "head" in current context.


 smile 
Как это победить?
PM MAIL   Вверх
hente
Дата 7.8.2009, 12:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 116
Регистрация: 20.3.2009
Где: Томск

Репутация: нет
Всего: нет



strMesh эт что?
--------------------
  долой быдло кодеров!!!
PM MAIL   Вверх
ller
Дата 7.8.2009, 12:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 325
Регистрация: 4.8.2008
Где: г. Таганрог

Репутация: нет
Всего: 4



Цитата(hente @  7.8.2009,  12:27 Найти цитируемый пост)
strMesh эт что? 


Код

class Mesh
{
private:
    struct strMesh
    {
        char Sticky;   // Флаг липкости, т.е. может ли эта частица двигаться
        //double Mass;   //Масса частицы, в принципе можно вынести вне, если она у всех одинаковая
        Vector3D Speed;// Скорость она и в африке скорость.
        Vector3D Pos[2]; // положение частицы. 2, чтоб не было "перекосов"
        Vector3D Strenght; // Внешняя сила, пока не будет использоватсья.
        strMesh *Link[4];
    };
    strMesh *pMesh;


но это не важно в данном случае
Код

int i,j;


Код

No symbol "j" in current context.

PM MAIL   Вверх
hente
Дата 7.8.2009, 13:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 116
Регистрация: 20.3.2009
Где: Томск

Репутация: нет
Всего: нет



т.е. я так понимаю у тя не работает следующая конструкция? :
Код


class A{
    public:
    A(); 
    private:
    int bla;
    }

A::A(){
     int B;
    }



дай полность класс и конструктор!!!
--------------------
  долой быдло кодеров!!!
PM MAIL   Вверх
ller
Дата 7.8.2009, 13:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 325
Регистрация: 4.8.2008
Где: г. Таганрог

Репутация: нет
Всего: 4



Код работает. Тоько я не могу его отлидить.

вот пример
Код

class test
{
private:
    int t;
public:
    test(int T);
    ~test(){};
};

test::test(int T)
{
    int cur;
    cur = T;
    t=T;
    cout << "cur=" << cur << '\n';
}


cout выводит правильное значение. Но если точку останова поставить на cout и в отладчике посмотреть значение cur, то напишет что 
Код

No symbol "cur" in current context.

Хотя значение t,T показывает. Я вот к чему
PM MAIL   Вверх
hente
Дата 7.8.2009, 14:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 116
Регистрация: 20.3.2009
Где: Томск

Репутация: нет
Всего: нет



у меня вот это работает

Код

class test
{
private:
    int t;
public:
    test(int T);
    ~test(){};
};

test::test(int T)
{
    int cur;
    cur = T;
    t=T;
    //cout << "cur=" << cur << '\n';
    ShowMessage(cur);  //если тут ставить точку останова и проверять cur то тоже ==5!!!!!!!!!!!!!!!
}


void __fastcall TForm1::FormCreate(TObject *Sender)
{
   test a(5);

}




Код тестировал в builder'е
К стате ты чем компилишь?

Это сообщение отредактировал(а) hente - 7.8.2009, 14:22
--------------------
  долой быдло кодеров!!!
PM MAIL   Вверх
andrew_121
Дата 7.8.2009, 14:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодофей
****


Профиль
Группа: Завсегдатай
Сообщений: 3448
Регистрация: 3.1.2008

Репутация: 3
Всего: 33



Какой дебагер? Есть ли фронтенд?


--------------------
Удалил аккаунт. Прощайте!
PM MAIL   Вверх
ller
Дата 7.8.2009, 15:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 325
Регистрация: 4.8.2008
Где: г. Таганрог

Репутация: нет
Всего: 4



GDB
Ну соответственно любые фронтэнды.
в VisualStudio тоже все отоброжается, поэтому и запостил в этой ветке.

Добавлено через 5 минут и 22 секунды
Код

Breakpoint 7, test (this=0xbffff46c, T=1) at ../src/test.cpp:29
29        cur = T;
(gdb) n
30        t=T;
(gdb) n
31        cout << "cur=" << cur << '\n';
(gdb) p cur
No symbol "cur" in current context.
(gdb) p t
$5 = 1
(gdb) p T
$6 = 1
(gdb) 



Добавлено через 7 минут и 19 секунд
Может у меня GDB глючный?

Добавлено через 11 минут и 45 секунд
Потому что странное происходит....
Код

(gdb) p cur
No symbol "cur" in current context.
(gdb) p test
cur=1
Ошибка сегментирования


PM MAIL   Вверх
ller
Дата 7.8.2009, 16:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 325
Регистрация: 4.8.2008
Где: г. Таганрог

Репутация: нет
Всего: 4



Нашел
Bugzilla Bug 8246        cannot print local variables in (some) constructor functions
Ошибка GDB. Обидно.
PM MAIL   Вверх
nickless
Дата 7.8.2009, 18:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Гентозавр
****


Профиль
Группа: Участник Клуба
Сообщений: 2976
Регистрация: 29.8.2005
Где: Germany

Репутация: 4
Всего: 181



ller, какая у тебя версия gdb?
У меня в 6.8 работает, правда если попытаться вызвать test() тоже падает (тут его его можно понять):
Код

(gdb) b test.cpp:17
Breakpoint 1 at 0x8048796: file test.cpp, line 17.
(gdb) r
Starting program: /tmp/gdb/test

Breakpoint 1, test (this=0xbf98f0d8, T=32) at test.cpp:18
18          cur = T;
(gdb) n
19          t=T;
(gdb) n
20          cout << "cur=" << cur << '\n';
(gdb) p cur
$1 = 32
(gdb) p cur
$2 = 32
(gdb) p cur
$3 = 32
(gdb) p test
zsh: segmentation fault  gdb ./test


Добавлено через 2 минуты и 47 секунд
ЗЫ
Компилировал gcc 4.3.3 под линуксом: 
Код

g++ -g test.cpp -o test



--------------------
user posted image

Real men don't use backups, they post their stuff on a public ftp server and let the rest of the world make copies
- Linus Torvalds
PM MAIL   Вверх
ller
Дата 7.8.2009, 18:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 325
Регистрация: 4.8.2008
Где: г. Таганрог

Репутация: нет
Всего: 4



Код

 gdb --version
GNU gdb Fedora (6.8-32.fc10)
Copyright (C) 2008 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "i386-redhat-linux-gnu".



Добавлено через 1 минуту
Код

 gcc --version
gcc (GCC) 4.3.2 20081105 (Red Hat 4.3.2-7)
Copyright (C) 2008 Free Software Foundation, Inc.


PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Программирование под Unix/Linux"
xvr
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой "Код".
  • Вопросы мобильной разработки тут
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема »


 




[ Время генерации скрипта: 0.1235 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.