Russian Qt Forum
Ноябрь 26, 2024, 01:33
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Общие вопросы
>
Странная ошибка SIG SEGV
Страниц:
1
...
3
4
[
5
]
6
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Странная ошибка SIG SEGV (Прочитано 35593 раз)
RealDuke
Гость
Re: Странная ошибка SIG SEGV
«
Ответ #60 :
Апрель 10, 2012, 10:49 »
Цитата: vbi от Март 21, 2012, 12:12
Цитата: mutineer от Март 21, 2012, 11:46
какая версия Qt, какая ось?
4.8.0 Windows 7
Если ещё актуально, прочитай мою тему
http://www.prog.org.ru/index.php?topic=21566.msg149874;topicseen#new
Вдруг поможет, подсунь библиотеки от 4.7.4.
Записан
Bepec
Гость
Re: Странная ошибка SIG SEGV
«
Ответ #61 :
Апрель 10, 2012, 10:50 »
Ппц человек
проблему уже решили, а он пишет и пишет
Записан
vbi
Гость
Re: Странная ошибка SIG SEGV
«
Ответ #62 :
Апрель 10, 2012, 14:58 »
Если честно, так и не решили. Так и не нашел где у меня память портится.
Цитировать
Проблема вылета - при парсинге URL "http://' отбрасывается "http:" и идёт поиск "//"
Вот только в момент вызова ф-ции QString.indexOf() у строки из 2 (двух) слешей из-за испорченной памяти длина где то "-1655874695" рандомно Улыбающийся Собственно там и выпадает программа в осадок.
Отлаживал, смотрел, так и не наткнулся ни на строку с двумя слешами. Проверял длинну .length() - всюду длинна была нормальной.
Записан
Bepec
Гость
Re: Странная ошибка SIG SEGV
«
Ответ #63 :
Апрель 10, 2012, 15:34 »
Вы хоть читаете, уважаемый vbi???
Где портится память зависит от системы/количества памяти/запущенных программ/использованной памяти и т.п.
На другом компьютере портиться будет, к примеру, размер какого-нибудь массива. На третьем будет портиться левая программа, и она будет умирать. На четвёртом система уйдёт в синий экран. На пятом в заголовке вашей программы изменится третья по счёту буква. На шестом испортится указатель this и прога упадёт ещё до запуска и т.п.
Потому порча памяти так и опасна - она не имеет чётко выраженной границы действия. На отдельно взятом компе она может повторятся. А на другом всё будет работать как часы. До того момента, как испортит ещё что-либо.
PS на моём компе и с моей конфигурацией
чаще
всего портится размер строки. И это ещё не значит, что если вставить туда проверку и продолжить программу дальше, память не будет представлять фарш из предсмертных воплей байтов.
«
Последнее редактирование: Апрель 10, 2012, 15:36 от Bepec
»
Записан
Alex Custov
Джедай : наставник для всех
Offline
Сообщений: 2063
Re: Странная ошибка SIG SEGV
«
Ответ #64 :
Апрель 10, 2012, 16:01 »
Цитата: Bepec от Апрель 10, 2012, 15:34
На третьем будет портиться левая программа, и она будет умирать.
Кто, левая программа?
Записан
V1KT0P
Гость
Re: Странная ошибка SIG SEGV
«
Ответ #65 :
Апрель 10, 2012, 18:54 »
Цитата: Bepec от Апрель 10, 2012, 15:34
На третьем будет портиться левая программа, и она будет умирать.
FAIL. У каждой программы свое виртуальное пространство и чужое пространство вот так испортить нельзя.
Записан
Bepec
Гость
Re: Странная ошибка SIG SEGV
«
Ответ #66 :
Апрель 10, 2012, 20:08 »
Виктор ты в это 100% уверен?
Я лично ронял своей программой ворд/ексцель и иже с ними 2007.
Windows 7 уходит в синий экран частенько.
Нет, я знаю как раздаётся память
Записан
V1KT0P
Гость
Re: Странная ошибка SIG SEGV
«
Ответ #67 :
Апрель 10, 2012, 20:38 »
Цитата: Bepec от Апрель 10, 2012, 20:08
Виктор ты в это 100% уверен?
Я лично ронял своей программой ворд/ексцель и иже с ними 2007.
Windows 7 уходит в синий экран частенько.
Нет, я знаю как раздаётся память
Тогда набросай примерчик который валит что-то кроме себя.
Записан
Bepec
Гость
Re: Странная ошибка SIG SEGV
«
Ответ #68 :
Апрель 10, 2012, 20:55 »
Сорри
Примерчик дать не могу, ибо у меня проект рабочий, коммерческий. Комплекс из примерно 20 модулей
Записан
V1KT0P
Гость
Re: Странная ошибка SIG SEGV
«
Ответ #69 :
Апрель 10, 2012, 21:03 »
Цитата: Bepec от Апрель 10, 2012, 20:55
Сорри
Примерчик дать не могу, ибо у меня проект рабочий, коммерческий. Комплекс из примерно 20 модулей
Тогда расскажи как это должно получиться теоретически?
У каждого процесса виртуальное пространство. Оно разбито на страницы, те страницы что выделены указывают на какое-то пространство оперативной памяти, не что не выделены указывают куда-то в ноль или типа того. И если попытаться писать в невыделанные страницы то ОС скорее всего грохнет такое наглое приложение. Вот и получается что программа может писать только туда куда разрешили. Вот и спрашивается как она может записать в чужой процесс?
Ведь не зря же добавляли shared memory, ибо просто так обратиться к памяти чужого процесса не получится. Тут даже топик был о том что нельзя по указателю прочитать данные из чужого процесса.
Записан
Bepec
Гость
Re: Странная ошибка SIG SEGV
«
Ответ #70 :
Апрель 10, 2012, 23:03 »
Прочитать нельзя с другого приложения, но...
Но можно испоганить функции своего адресного пространства, соответственно вызвав целую серию сбоев и ошибок + вызов winApi функций с стрессовыми параметрами и прочим.
К сожалению в глубины сих действий я не лазил, но поступлю как еврей:
Как программа может убить систему в BSOD, если ей доступна только своя память?
PS Причём что она может убить и убивает - не обсуждается. Это есмь факт.
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Странная ошибка SIG SEGV
«
Ответ #71 :
Апрель 11, 2012, 12:22 »
Ну вот, поймали
Bepec
а на неаккуратной фразе и рады
Возвращаясь к теме: конечно критиковать легко, недостатки очевидны: архитектуры нет, есть просто "блюдо спагетти" (слот/сигнал это провоцирует/поощряет). А как надо было делать правильно? Я не могу сказать потому что далек от веба и др (и слава богу).
Записан
Bepec
Гость
Re: Странная ошибка SIG SEGV
«
Ответ #72 :
Апрель 11, 2012, 13:13 »
Ааа... меня поймали на правде!
А по теме - не видел и не представляю пока себе программу в вебе, которая оперирует сразу 20+ потоками. Просто не вижу смысла и необходимости.
А так Igors пришёл и указал на то, что мы не замечали - архитектурку то надо пересмотреть ТС'су
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Странная ошибка SIG SEGV
«
Ответ #73 :
Апрель 11, 2012, 13:47 »
Цитата: Bepec от Апрель 11, 2012, 13:13
А так Igors пришёл и указал на то, что мы не замечали - архитектурку то надо пересмотреть ТС'су
Замечать-то замечали, но вот предлагать правильную почему-то не спешили. А давать указания автору темы (типа "ну ты персмотри") каждый может
Записан
V1KT0P
Гость
Re: Странная ошибка SIG SEGV
«
Ответ #74 :
Апрель 11, 2012, 13:50 »
Цитата: vbi от Апрель 10, 2012, 14:58
Если честно, так и не решили. Так и не нашел где у меня память портится.
Цитировать
Проблема вылета - при парсинге URL "http://' отбрасывается "http:" и идёт поиск "//"
Вот только в момент вызова ф-ции QString.indexOf() у строки из 2 (двух) слешей из-за испорченной памяти длина где то "-1655874695" рандомно Улыбающийся Собственно там и выпадает программа в осадок.
Отлаживал, смотрел, так и не наткнулся ни на строку с двумя слешами. Проверял длинну .length() - всюду длинна была нормальной.
Ты говорил что:
Цитата: vbi от Апрель 01, 2012, 20:42
Заметил странную особенность. Как Вы заметили этот фрагмент программы, который я выложил парсит каталог DMOZ. Но если его переписать таким образом, чтоб он парсил другой сайт (например Яндекс) - данная ошибка ни разу не наблюдалась. По крайней мере количество возвращенных результатов было около 150 000 и было остановлено вручную.
Может при парсинге DMOZ для какой-то страницы запрашивает авторизацию, что приводит к падению? Логируй запросы и ответы, может что интересное прояснится.
Записан
Страниц:
1
...
3
4
[
5
]
6
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...