![]() |
|
|
![]()
|
|
| fish9370 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 663 Регистрация: 15.4.2007 Где: Москва Репутация: 1 Всего: 1 |
у кого какие соображения, как может получиться, что строка "delete pThis->szItem;" может ссылаться на чужую область памяти? это при том, что указатель pThis не был взят с потолка и имеет верные значения.. -------------------- undefined |
|||
|
||||
| Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 34 Всего: 59 |
Предположение:
1. Неправильно инициируется szItem 2. Адрес не того объекта передается. |
|||
|
||||
| fish9370 |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 663 Регистрация: 15.4.2007 Где: Москва Репутация: 1 Всего: 1 |
создание и инициализация производится вот так:
таким образом создается цепочка элементов, каждый из которых указывает на строку.. давльше после обработке, каждого из них, первый элемент удаляется.. это выглядит вот так:
метод удаления выглядит так:
программа сыпется на том месте, где я указал в первом посте.. сыпится не сразу, далеко не на первой итерации, но что обидно - стабильно.. все осложняется , тем что я уже этот код запихнул в поток.. до этого, при трассеровке такого не наблюдалось.. -------------------- undefined |
||||||
|
|||||||
| dizzy1984 |
|
||||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 675 Регистрация: 15.2.2007 Репутация: нет Всего: 25 |
Возможно дело в том, что память выделенная с помощью
должна удаляться с помощью
попробуйте поменять
на
Это сообщение отредактировал(а) dizzy1984 - 21.4.2007, 15:34 |
||||||||
|
|||||||||
| fish9370 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 663 Регистрация: 15.4.2007 Где: Москва Репутация: 1 Всего: 1 |
2 Dizzi1984 ты не поверишь, незадолго до твоего сообщения, я точно так же подумал.. и поставил эти квадратные скобки, ровно в том месте, в котором ты предложил.. к несчастью, это не помогло.. может еще какие-то идеи?
-------------------- undefined |
|||
|
||||
| Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 34 Всего: 59 |
Если под трассировкой все работало, то конечно врядли в этом дело, но я совершенно не понял вот этого участка:
|
|||
|
||||
| fish9370 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 663 Регистрация: 15.4.2007 Где: Москва Репутация: 1 Всего: 1 |
Anikmar я так был восхищен своим кодом и мания упрощать все и вся, привели меня к подобным ошибкам.. эту ошибку я исправил (на которую ты указал).. но ошибка, главная ошибка, все еще беспокоит меня.. но ты показал мне, что мой код все еще дыряв как операционнная система виндоуз (не в обиду Биллу сказанно).. и за это тебе спасибо..
сейчас еще раз тщательно пробегусь отладчиком.. если есть еще какие мысли, был бы рад услышать.. Это сообщение отредактировал(а) fish9370 - 21.4.2007, 20:02 -------------------- undefined |
|||
|
||||
| Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 34 Всего: 59 |
У меня возникло впечатление, что все дело в пограничных случаях удаления элемента из цепочки... Именно по этому ошибка проявляется не сразу, а по достижения некого критерия - список пуст или в нем осталось 1 или 2 элемента и т.п.
Вообще-то я пока не писал серьезные многопоточные вещи, а так пару раз баловался, но даже с небольшими экспериментами я препочитал писать все в Лог - ошибки ловятся на ура. |
|||
|
||||
| fish9370 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 663 Регистрация: 15.4.2007 Где: Москва Репутация: 1 Всего: 1 |
ты же понимаешь, что именно так я и делаю.. все без толку.. могу логи привести.. я уже думаю, что это связанно как-то с потоками.. он сбоит абсолютно хаотично.. завтра буду думать.. сегодня начал с другого конца, делал интерфейс.. к среде нужно прогу предоставить.. хотябы бета-версию.. -------------------- undefined |
|||
|
||||
| Anikmar |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2513 Регистрация: 26.11.2006 Где: Санкт-Петербург Репутация: 34 Всего: 59 |
Ну тогда если только что-то с синхронизацией. Когда функция удаления узла влетает на реентерабельность, а судя по коду она там не поддерживается... Больше ничего в голову не приходит. |
|||
|
||||
| fish9370 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 663 Регистрация: 15.4.2007 Где: Москва Репутация: 1 Всего: 1 |
докопался наконец.. оказывается, я просто не расчитал размер буфера под строку.. выделял впритык.. накинул еще 10 байт появилась стабильность и счастье.. всем еще раз спасибо..
вот как надо было:
-------------------- undefined |
|||
|
||||
| fish9370 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 663 Регистрация: 15.4.2007 Где: Москва Репутация: 1 Всего: 1 |
спасибо..
-------------------- undefined |
|||
|
||||
![]()
|
| Правила форума "С++ Builder" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C++ Builder | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |