![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#11 |
ios developer
Старожил
Регистрация: 16.11.2007
Сообщений: 2,885
|
![]()
Откуда отладчик должен знать, валидный у вас адрес, или нет? Это рантайм ошибки.
Делайте что хотите, но чтобы через полчаса в лесу было светло, сухо и медведь!
|
![]() |
![]() |
![]() |
#12 |
Форумчанин
Регистрация: 01.06.2015
Сообщений: 497
|
![]()
Наверно неправильно написал. Я имел в виду, что программа, запущенная под отладчиком, при возникновении любого исключения должна остановиться на месте этого исключения, и показать какое произошло исключение. Или я ошибаюсь?
Если помог, буду очень благодарен за Ваш отзыв (весы в левой нижней части сообщения).
|
![]() |
![]() |
![]() |
#13 |
ios developer
Старожил
Регистрация: 16.11.2007
Сообщений: 2,885
|
![]()
Если среда умеет брякаться на ассемблерном коде, то да. И то, она покажет именно то место, где произошла запись/чтение в/из адреса, а вовсе не то, где адрес перестал быть валидным. Мало того, к тому времени, как среда брякнется, того объекта, который должен быть на этом месте, уже в природе может не существовать. Тут важно понимать, что исключение произошло не там, где вы накосячили в коде а там, где вылезли последствия этого косяка. По стектрейсу иногда можно что-то понять, но опять же, только иногда. Самый муторный в отладке тип ошибок.
Делайте что хотите, но чтобы через полчаса в лесу было светло, сухо и медведь!
Последний раз редактировалось crazy horse; 13.07.2015 в 16:54. |
![]() |
![]() |
![]() |
#14 |
Форумчанин
Регистрация: 01.06.2015
Сообщений: 497
|
![]()
Не обязательно на ассемблерном, у меня Qt Creator может показывать как в коде проекта, так и в ассемблерном коде, если не может показать в коде из-за использования каких-либо библиотек.
Но зная место, где происходит исключение, уже можно будет хоть что-то понять.
Если помог, буду очень благодарен за Ваш отзыв (весы в левой нижней части сообщения).
|
![]() |
![]() |
![]() |
#15 |
С++, Delphi
Форумчанин
Регистрация: 24.11.2012
Сообщений: 495
|
![]()
Вы указатель приравниваете в NULL и следом пытаетесь его разыменовывать и докучи изменить его содержимое... в релизе это приведёт к вылету....
P.S: не советую использовать рекурсию при обработки столь много полигональной модели, переполнение стека влечёт к вылету, а размер стека на каждой машине разный.
Если помог, тут весы есть
![]() Последний раз редактировалось Perchik71; 14.07.2015 в 17:12. |
![]() |
![]() |
![]() |
#16 | |
Форумчанин
Регистрация: 30.12.2010
Сообщений: 280
|
![]() Цитата:
Читал что выход за пределы стека может происходить из-за большого числа вложенных функций. Опишу количество вложенных функций у меня (незнаю правильно ли я понял что такое вложенные функции). Есть главный класс, он загружает другой класс(класс который управляет моделями), потом загружается класс самой 3д модели, далее загружается ещё один класс с дополнительными 3д моделями (на этом последнем классе и вылетает). Когда я говорю загружает это значит запускается функция загрузки. То есть вложенных функций получается 4. Вроде бы не очень много, а от чего-то вылетает. Влияет ли количество кода в функциях на стек или на стек влияет только количество переменных? Ато кода в этих функциях у меня много. Уже и не знаю где ещё искать. |
|
![]() |
![]() |
![]() |
#17 |
С++, Delphi
Форумчанин
Регистрация: 24.11.2012
Сообщений: 495
|
![]()
это всё хрень...
загрузка данных одного типа можно достичь путём рекурсии Код:
P.S: рекурсия это вызов функции внутри себя, накапливается стек переменных, что отправляете... потом цепочкой все отгружается P.S.S: приведите Ваше решение сюда
Если помог, тут весы есть
![]() Последний раз редактировалось Perchik71; 14.07.2015 в 21:06. |
![]() |
![]() |
![]() |
#18 | ||
Форумчанин
Регистрация: 01.06.2015
Сообщений: 497
|
![]() Цитата:
Цитата:
Код:
Да и я не уверен, что проблема именно в переполнении стека.
Если помог, буду очень благодарен за Ваш отзыв (весы в левой нижней части сообщения).
Последний раз редактировалось Krasiosoft; 14.07.2015 в 21:53. |
||
![]() |
![]() |
![]() |
#19 |
Форумчанин
Регистрация: 30.12.2010
Сообщений: 280
|
![]()
Вот так загружаю дополнительные модели.
Код:
Код:
CurStr = persplus + CurStr; Ещё когда много 3д моделей, у меня вылетает на одной из четырёх анимаций, то есть один тип анимации не работает. Тут вылетает time2 = fabs((anbone[i].time[0] * 500) - timeArr[AnimationShagFrame]); Ну и когда я что-то поменял, не помню уже что вылетало как я указал в посте №3. То есть если я изменяю код, удаляю те места где происходил вылет, вылетает уже в другом месте. |
![]() |
![]() |
![]() |
#20 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,372
|
![]()
Т.е. вы показали нам как выделяете массив Weapon а потом жалуетесь, что валится при работе с массивом newindeces и от нас требуется догадаться в чем проблема?
Подсказка - наличие typecast свидетельствует о проблеме. |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Памяти | VladimirAvakov | Общие вопросы C/C++ | 0 | 28.05.2014 23:01 |
Задача-найти объем оперативной памяти по шестнадцатеричному адресу последнего байта оперативной памяти | Ksana Alex | Помощь студентам | 4 | 14.11.2013 15:51 |
Распределение памяти. Динамическое выделение памяти с++ | Tolian92 | Помощь студентам | 8 | 14.05.2012 21:44 |
Программа для тестирования памяти, тестирование ячеек памяти | Hunter557 | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 0 | 30.01.2011 19:20 |
Кольцевая очередь на массиве в статической памяти с элементами в динамической памяти | ]tach[ | Общие вопросы C/C++ | 1 | 19.01.2011 13:16 |