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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> отладка программы с valgrind, Address 0x5589b88 is 24 bytes inside a b 
:(
    Опции темы
4ert
Дата 27.3.2012, 15:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 14.4.2006

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



Добрый день, решил попробовать отладить приложение с помощью valgrind, многие ошибки исправил, все достаточно просто и легко было. Но вот одна:
Цитата

==12205== Invalid read of size 8
==12205==    at 0x37E1864C40: std::_Rb_tree_increment(std::_Rb_tree_node_base*) (in /usr/lib64/libstdc++.so.6.0.8)
==12205==    by 0x40393C: readConfig(std::string) (stl_tree.h:257)
==12205==    by 0x4058BE: main (application.cpp:42)
==12205==  Address 0x5589b88 is 24 bytes inside a block of size 48 free'd
==12205==    at 0x4A05A33: operator delete(void*) (vg_replace_malloc.c:346)
==12205==    by 0x4067AD: std::_Rb_tree<std::string, std::pair<std::string const, std::string>, std::_Select1st<std::pair<std::string const, std::string> >, std::less<std::string>, std::allocator<std::pair<std::string const, std::string> > >::erase(std::_Rb_tree_iterator<std::pair<std::string const, std::string> >, std::_Rb_tree_iterator<std::pair<std::string const, std::string> >) (new_allocator.h:94)
==12205==    by 0x406841: std::_Rb_tree<std::string, std::pair<std::string const, std::string>, std::_Select1st<std::pair<std::string const, std::string> >, std::less<std::string>, std::allocator<std::pair<std::string const, std::string> > >::erase(std::string const&) (stl_tree.h:1215)
==12205==    by 0x403934: readConfig(std::string) (stl_map.h:461)
==12205==    by 0x4058BE: main (application.cpp:42)


не дает мне покоя(( приложение достаточно большое, весь код приводить не буду, но кусок в котором происходит описанная выше проблема вот:
Код

string config_file;
        if(strlen(getParam("config").c_str())>0)
        {
           config_file=getParam("config");
        }else config_file=string("default.conf");

        if(access(config_file.c_str(), 0)== -1)
        {
           printf("Config file \"%s\" not exists\n",config_file.c_str());
           exit(1);
        }

        if(!readConfig(config_file))
          {
             printf("Application error: read config file\n");
             exit(1);
          }

строчка 42 
Код

if(!readConfig(config_file))


подскажите пожалуйста, в чем может быть ошибка, и как ее можно исправить?
заранее спасибо.

Модератор: Не следует использовать кнопку "Код" для цитирования вывода приложений.

Это сообщение отредактировал(а) bsa - 28.3.2012, 08:03
PM MAIL   Вверх
EnergoHokum
Дата 28.3.2012, 14:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 600
Регистрация: 10.11.2006
Где: Россия, Ставропол ь

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



Код

if(...)
{
  printf("Application error: read config file\n");
  exit(1); /* Очень, ОЧЕНЬ нехорошая практика -- вот так делать! */
}


А в какую структуру читается файл? В какой-то из стандартных ассоциативных контейнеров? Хотелось бы посмотреть реализацию функции readConfig.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


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

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


 




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


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

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