![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| GarryFV |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 11.10.2002 Репутация: нет Всего: нет |
WinXP, D7
Как известно, глюки всякие бывают, но такого ещё не видел. Сосбтвенноручно написанная программа отказывается корректно работать в каталогах с определенным именем =8-[= =]. А именно - при выходе возникает Exception EInvalidPointer по адресу 00002864. Invalid Pointer operation. Где - неясно. Где-то уже в оконечном коде по высвобождению ресурсов. Причём закономерности я не обнаружил Вот варианты имён каталогов. С:\RezCopy\GizExe\tttttt - Exception такой же, только на D: D:\RezCopy\GizExe\tttttt - Exeption C:\RezCopy\GizExe\ttttt - нормально и вообще нормально, если длина имени последней папки меньше 6-ти символов, а если 6 и больше - Exeption. Может влияет общая длина пути? Нет: D:\TMP111111111111111111111111111111111111111111111111111 - нормально и ещё хит, если путь в котором возникает Exception D:\RezCopy\GizExe\tttttt изменить на D:\TMP\RezCopy\GizExe\tttttt - тоже всё нормально Кто что думает по этому поводу? Любые версии принимаются, даже самые абсурдные. |
|||
|
||||
| Unregistered |
|
|||
|
Unregistered |
Атрибуты посмотри
|
|||
|
||||
| Cashey |
|
|||
![]() Бессмертный ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3441 Регистрация: 13.11.2002 Где: в столице Репутация: 2 Всего: 60 |
А у тебя в программе или в свойствах проекта ни где путь \RezCopy\GizExe\ не прописан, может в к таблице или базе данных обращение происходит?
-------------------- библия учит любить ближнего, а камасутра обучает как именно |
|||
|
||||
| Петрович |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1000 Регистрация: 2.12.2003 Где: Москва Репутация: 25 Всего: 55 |
Боюсь что имя каталога всего-навсего провацирует проявление совершенно другой ошибки. Подобное проявление могут иметь ошибки связанные с нарушением границ массивов(строк), использование неинициированных переменных (особенно локальных).
Что можно попробовать сделать: 1. Включи Warnings у компилятора и устрани их если есть конечно. 2. Включи Range checking 3. Выключи оптимизацию Если не поможет, то далее процесс поиска, это уже индивидуальный процесс, зависящий от проги. -------------------- Все знать невозможно, но хочется |
|||
|
||||
| GarryFV |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 11.10.2002 Репутация: нет Всего: нет |
To Unregistered: Атрибуты не могут зависеть от имени каталога. Я же не переношу прогу из каталога в каталог, а переименовываю tttttt в ttttt.
to Cashey: Нет путь нигде не прописан. Обращение идет к Oracle по TCP/IP. Да и посмотри - пути самые разные в которых она работает и не работает. Например D:\TMP\1111...111\ - ничем не похож на другие, а в нём всё нормально. Да, я ж только пути указал. Полное имя будет к примеру "D:\RezCopy\GizExe\tttttt\gis.exe" Петровичу: Я не удивляюсь, что этот глюк есть, т.к. в некоторых местах мы весьма хитро работаем с памятью и если включить Range checking или оптимизацию, то вообще не будет работать Особенно прикалывает оптимизация, когда этот очень умный компилятор подменяет куски кода таким образом, что всё идёт не так, как написано и "валится" вчистую. Так вот - я не удивляюсь, что глюк есть, может где-то что-то и прошляпили (проект довольно монстроидальный), я "торчу" от условий его возникновения! |
|||
|
||||
| Vit |
|
|||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 48 Всего: 207 |
Тут всё понятно - хомут в памяти. Искать чрезвычайно сложно. Попробуй для начала включить в опциях компилляции "Range Check" и посмотреть как это влияет.
-------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
|||
|
||||
| GarryFV |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 11.10.2002 Репутация: нет Всего: нет |
Ясно, что в памяти.
Почему от имени рабочего каталога зависит? Я ещё понимаю, если б общая длина влияла - можно предположить, что более длинная строка что-то затирает. А так - полный бред. Ну да ладно, всё равно ж ничего из вышепреведённых условий не ясно. Ясно, что прогу надо рыть, что при 2.2М исходниках (чисто только *.pas файлы) весьма затруднительно Пока что эта штука работать не мешает, а там отщемим. Или запишем known bugs : "Не помещайте программу в каталоги с именами [список] - это может привести к возникновению исключений при выходе из программы. Впрочем, если Вам это не мешает - помещайте куда хотите" p.s. Тоже самое спросил на delphimaster, так ветку быренько удалили. Видать модерам название не понравилось или посчитали, что это чистый флуд, не имеющий ценности.... |
|||
|
||||
| Vit |
|
||||
![]() Vitaly Nevzorov ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 10964 Регистрация: 25.3.2002 Где: Chicago Репутация: 48 Всего: 207 |
Затирает чего-то в памяти... А то что не всегда, так откуда ты знаешь? Боюсь тебя огорчить, но скорее всего всегда, только не известно что в этой области памяти хранится и как это на ней отображается, может затирается не код, а какие-то данные, и подмена данных приводит к глюку не всегда, а только если на определённых местах чего-то стоит. Мало того, выход в том чтобы не рекомендовать определённые имена тоже не подходит, с большой долей вероятности на других компьютерах и при других условиях вылет быдет в других местах... Ещё раз предлагаю посмотреть мой совет:
-------------------- With the best wishes, Vit I have done so much with so little for so long that I am now qualified to do anything with nothing Самый большой Delphi FAQ на русском языке здесь: www.drkb.ru |
||||
|
|||||
| GarryFV |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 37 Регистрация: 11.10.2002 Репутация: нет Всего: нет |
Про Range Check я раньше писал
Да найдём, конечно. Я больше не за советами, а приколом поделиться. Глюк вылезает все-таки стабильно в каталогах с ОПРЕДЕЛЁННЫМИ ИМЕНАМИ. Условия, конечно, могут меняться, но в данном случае тест состоит только из запуска и закрытия проги. З.Ы. тебе до 6666 три сообщения осталось |
|||
|
||||
| p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 58 Всего: 112 |
А если попробовать каталог такой же длины, например:
С:\RezCopy\GizExe\uuuuuu что будет ? И путь у тебя в какой переменной хранится (если хранится) ? (её тип) -------------------- С уважением, г-н Посол. |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |