![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
uwannadie |
|
||||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 175 Регистрация: 5.6.2009 Где: Крым, Керчь Репутация: нет Всего: 1 |
отлаживал программу ,пытаяся выловить AV. для этого подключил FASTMM
после подключения имеем налицо ошибку в строчке
лог фастмм-а:
сама ошибка возникает в System._NewUnicodeString:
на борту Embarcadero® Delphi® XE Version 15.0.3953.35171 FastMM 4.97 на всякий пожарный прилагаю код модуля, в котором находится строка с ошибкой Добавлено через 5 минут и 14 секунд UPD выключил FastMM, ошибка исчезла, но появляется старый AV :( Присоединённый файл ( Кол-во скачиваний: 4 ) ![]() --------------------
|
||||||
|
|||||||
MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 62 Всего: 128 |
uwannadie, сразу бросилась в глаза неинициализированная локальная переменная в цикле
Ну и по StrLCopy замечание... учитывается ли, что Dest должно быть размером MaxLen+1 для null terminator'а? Может еще какие косяки есть. -------------------- There are always someone smarter than you... |
|||
|
||||
uwannadie |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 175 Регистрация: 5.6.2009 Где: Крым, Керчь Репутация: нет Всего: 1 |
- в смысле поставить в параметр MaxLen в моем случае размер массива + 1 ? - ну очевидные косяки исправил. типа соответствия типов и освобождения объектов и удаление указателей на них самое интересное, что на системах с полноценной поддержкой AV не появляется (проверял на висте, семерке) может где-то тут собака зарыта? Это сообщение отредактировал(а) uwannadie - 23.5.2011, 15:13 --------------------
|
|||
|
||||
northener |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1361 Регистрация: 2.9.2010 Репутация: 8 Всего: 20 |
Появление или не появление AV это дело случая. Появление AV есть прямое указание на ошибку в программе, отсутствие AV ни о чем не говорит. -------------------- Но только лошади летают вдохновенно. Иначе лошади разбились бы мгновенно! |
|||
|
||||
uwannadie |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 175 Регистрация: 5.6.2009 Где: Крым, Керчь Репутация: нет Всего: 1 |
ну это ясно.
в общем ошибка со строкой исчезла совсем после правки параметров StrLCopy теперь FASTMM добрался до основного гвоздя - AV ![]() Это сообщение отредактировал(а) uwannadie - 23.5.2011, 15:55 --------------------
|
|||
|
||||
MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 62 Всего: 128 |
Всмысле, что размер Dest = MaxLen+1, т.е. эта функция запишет MaxLen cимволов, и в конце добьет нулем. В твоем случае, если строка слишком длинная, то ноль этот улетал за пределы Dest. -------------------- There are always someone smarter than you... |
|||
|
||||
uwannadie |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 175 Регистрация: 5.6.2009 Где: Крым, Керчь Репутация: нет Всего: 1 |
ну это понятно, но я думаю тут проблема решилась бы проверкой длины массива символов вида
как раз 1 место для #0 останется в любом случае --------------------
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |