powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Глюк с удалением объекта
8 сообщений из 8, страница 1 из 1
Глюк с удалением объекта
    #33665352
AlexeyStaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Столкнулся с какой-то непонятной проблемой. Есть некоторый класс:
class SNAutoDetectUpdate
{
public:
SNAutoDetectUpdate();
virtual ~SNAutoDetectUpdate();
public:
bool DetectNewUpdate();
/*
public:
int chekedTime;
*/
public:
DWORD ThreadMethod();
public:
void Start();
public:
void Stop();
public:
HANDLE stopEvent;
public:
HANDLE threadHandle;
public:
int tSR;
public:
__int64 liSR;
public:
//путь к каталогу программы
char pathToIniFile[MAX_PATH];
public:
char FilePath[MAX_PATH];

};


Есть диалог, где используется экземпляр этого класса. Попробовал использовать этот класс в другой программе (тоже диалог), но в ней еще используются библиотеки Lotus Notes API C++ 3.0. И сталкнулся с глюком или со своей ошибкой — если использовать класс в таком виде, то при удалении его (класса) экземпляра вылетает ошибка:

Windows has triggered a breakpoint in COD.exe.
This may be due to a corruption of the heap, and indicates a bug in COD.exe or any of the DLLs it has loaded.
The output window may have more diagnostic information
Если же расскомментировать объявление поля chekedTime, то все работает нормально. Целый день уже бьюсь над этой проблемой, но так и не смог найти ее решения. Такая же ситуация может быть и в том случае, когда перенести объявляние полей pathToIniFile и FilePath в начало описания класса. Какие есть мысли по этому поводу? Буду благодарен за любые идеи.
...
Рейтинг: 0 / 0
Глюк с удалением объекта
    #33665649
road_run
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет.
Такое осюсение что ты бъешь память, причем, если следовать твоему описанию где то вне кода данного класса.
Вспоминаю похожий глюк описание Sun Solaris 8 компилятор gcc огронмый исходный файл насписанный на с. В этом файле вызываю два раза метод memcpy(.....) - результат core dump. Проверяю все нормально под переменные память выделяется и все такое. Пишу тестовый код в котором создаю две переменные выделяю под них память и вызываю в цикле 50 раз memcpy(....) результат см. выше. Еще раз повторяюсь исходный код огромен, начинаю этот тестовый код вставлять и проверять за полтора дня нашел утечку.
Интересно проект позволит отключить библиотеку на которую ты грешишь?
...
Рейтинг: 0 / 0
Глюк с удалением объекта
    #33665883
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если же расскомментировать объявление поля chekedTime, то все работает нормально. Целый день уже бьюсь над этой проблемой, но так и не смог найти ее решения.

Это случайность. Сделай так, чтобы ошибка была (все равно как) и лови ее. Отладчиком . Можешь пометить блок памяти от начала и конца этого объекта вверх и вниз на чуть чуть (точно - на размер заголовка блока дин. памяти, но чуть больше не страшно). И смотри, когда туда что-то запишется.
...
Рейтинг: 0 / 0
Глюк с удалением объекта
    #33665886
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как память-то выделяется ? Где объект создается ?
...
Рейтинг: 0 / 0
Глюк с удалением объекта
    #33666875
AlexeyStaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
road_runПривет.
Такое осюсение что ты бъешь память, причем, если следовать твоему описанию где то вне кода данного класса.
Вспоминаю похожий глюк описание Sun Solaris 8 компилятор gcc огронмый исходный файл насписанный на с. В этом файле вызываю два раза метод memcpy(.....) - результат core dump. Проверяю все нормально под переменные память выделяется и все такое. Пишу тестовый код в котором создаю две переменные выделяю под них память и вызываю в цикле 50 раз memcpy(....) результат см. выше. Еще раз повторяюсь исходный код огромен, начинаю этот тестовый код вставлять и проверять за полтора дня нашел утечку.
Интересно проект позволит отключить библиотеку на которую ты грешишь?
Да, позволяет. Если отключаю библиотеку Notes API, то все нормально работает.
...
Рейтинг: 0 / 0
Глюк с удалением объекта
    #33667286
road_run
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AlexeyStaf
Да, позволяет. Если отключаю библиотеку Notes API, то все нормально работает.
То бишь есть большая вероятность что или там или в методах взаимодействующих с библиотекой. Попробуй поигратся с вызовами функций из этой бибилотеке, если это возможно. Я бы тест написал для этой библиотеке... и посмотрел бы что проихсодит...
...
Рейтинг: 0 / 0
Глюк с удалением объекта
    #33667439
AlexeyStaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivА как память-то выделяется ? Где объект создается ?
Объект пробовал и в стеке, и в куче создавать - все равно валится. Сейчас еще одну интересную вещь обнаружил - изменил статические массивы на динамические, но создаю их тако же длины (MAX_PATH). Тоже все нормально стало работать. Даже и не знаю что делать, может бросить это и оставить так, пока опять все не сломал :)
...
Рейтинг: 0 / 0
Глюк с удалением объекта
    #33667444
AlexeyStaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
road_run
То бишь есть большая вероятность что или там или в методах взаимодействующих с библиотекой. Попробуй поигратся с вызовами функций из этой бибилотеке, если это возможно. Я бы тест написал для этой библиотеке... и посмотрел бы что проихсодит...
Весь прикол в том, что я просто подключаю эту библиотеку (даже не вызываю ее функции).
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Глюк с удалением объекта
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]