Заблокирован
![]() |
|||||||||||
1 | |||||||||||
Помогите выловить баг, сил моих больше нету(((06.04.2011, 11:06. Показов 1737. Ответов 15
Метки нет Все метки)
(
Программа глючит при добавлении больших структурированных каталогов, раньше думал, что ошибка выделения памяти, оказалось нет...Очень надо помощь спеца, СРОЧНО!!!
Конструктор класса
0
|
|
06.04.2011, 11:06 | |
Ответы с готовыми решениями:
15
Перевод из си в ассемблер.Сил моих больше нет.
Сил моих больше нет учиться в колледже на программиста Сложный запрос, нету сил больше |
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
11.04.2011, 07:54 | 2 |
Ты б его хоть показал, а то телепат всего то один, да и тот на форуме игроделов.
0
|
В астрале
![]() 8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
11.04.2011, 09:06 | 3 |
taras atavin, 45-52 строчка во втором листинге
0
|
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
11.04.2011, 09:24 | 4 |
Вылетает конкретно на 51-й? Если кач вообще сработал, то ищи, откуда выплыло само исключение. И iINDENT где то объявлен и мне просто опять не по глазам? Какой у него тип?
0
|
Заблокирован
![]() |
|
11.04.2011, 09:39 [ТС] | 5 |
taras atavin, программа вылетает при рекурсивном вызове функции MkPathList и то при большой вложенности подкаталогов, это сначало наталкнуло меня на мысль что realloc не справляется с выделением памяти, но если бы происходили косяки с выделением памяти блок-памяти отведенный под pDATA обнулялся, а так с трай кэтч прога работает дальше. Я специально не хочу вводить в СStorage лист-контрол куда и осуществляю выгрузку результатов поиска, этот класс хочу юзать как для консолей так и диалоговых приложений. Параметр iINDENT отвечает за сдвиг иконок в листбоксе, т.е. указывает на вложенность подкаталога, вот привожу скриншот работы проги
0
|
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
11.04.2011, 09:44 | 6 |
Так с отловленным исключением всё работает? Тогда сделай лог и вывод максимально расширенного сообщения об исключении и ищи, откуда оно лезет.
0
|
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
11.04.2011, 09:47 | 8 |
Каков полный путь к тому файл/подкаталогу, на котором выскакивает исключение? Какой он длины, сколько в нём уровней? Допустимо ли это с точки зрения как системы в целом, так и конкретно используемых функций.
1
|
Заблокирован
![]() |
||||||
11.04.2011, 09:49 [ТС] | 9 | |||||
Та пишет i/o error и всё - мне этого мало чтобы выявить баг. Ввёл рапорт об ошибке, но тоже мало чем помогло(((
0
|
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
11.04.2011, 09:50 | 10 |
Может быть ты просто влез в ограничение?
Добавлено через 55 секунд А i/o егор - это ошибка обращения к диску.
0
|
Заблокирован
![]() |
||||||||||||||||
11.04.2011, 17:22 [ТС] | 11 | |||||||||||||||
taras atavin я перепаял прогу вобщем прога вылетает в try_catch который приведен в коде ниже, причём для каждого каталог в одном конкретном месте, в некоторых каталогах вообще исключения нет,
strerror пишет Improper link. Моё предположение что FindFirstFile обнуляет pFILE_DATA и вот здесь
0
|
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
12.04.2011, 08:22 | 12 |
То есть файл просто не найден? В сообщении об исключении выведи значение pFILE_DATA для проверки, потом сделай проверку ифом.
0
|
Модератор
![]() 8876 / 6651 / 912
Регистрация: 14.02.2011
Сообщений: 23,420
|
|
12.04.2011, 08:38 | 13 |
Может срабатывает ограничение на длину имени файла???
макрос есть MAXPACH по моему. определен в 255 попробуй добавить. где то писал рекурсивный поиск файлов найду исходник вышлю Добавлено через 2 минуты GetLastError() что пишет
0
|
Заблокирован
![]() |
|
12.04.2011, 09:47 [ТС] | 14 |
Баг уже выловил - как оказалось при определённой структуре внутренних подкаталогов добавляемой дирректории, происходит перекрытие блока памяти в котором содержится LPCTSTR szPath, в резулльтате szPath == NULL, об этом говорит указанный скриншот, проблемму решил введением дополнительной строковой переменной для хранения пути к каталогу, все проблеммы исчезли!
Ребят спасибо всем за участие! ![]()
0
|
Модератор
![]() 8876 / 6651 / 912
Регистрация: 14.02.2011
Сообщений: 23,420
|
|||||||||||
12.04.2011, 19:40 | 15 | ||||||||||
WinDef.h
преопредели MAX_PATH сделай 1024 и ошибка должна исчезнуть хотя наверно можно найти и более длинное имя файла
0
|
Заблокирован
![]() |
||||||
13.04.2011, 10:26 [ТС] | 16 | |||||
ValeryS, пасибо за участие, но как уже говорил выше я нашёл решение и даже без ввода доп строковой переменной, вот оно:
![]() ![]()
0
|
13.04.2011, 10:26 | |
13.04.2011, 10:26 | |
Помогаю со студенческими работами здесь
16
Сил моих нет Денвер постоянно ругается на рабочие коды Сил больше нет! Виснет компьютер, сил больше нет Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |