segmentation fault починка

Sabayon, Calculate, Funtoo, Exherbo

Модератор: /dev/random

Ответить
Аватара пользователя
yoricI
Сообщения: 2345
ОС: gentoo fluxbox

segmentation fault починка

Сообщение yoricI »

Здравия!
$ sqlitebrowser
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-globus'
qt5ct: using qt5ct plugin
Segmentation fault

Пересобрал, толку нет.
И где концы искать? Неужели опять strace?
Спасибо сказали:
Аватара пользователя
Hephaestus
Сообщения: 3729
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2
Контактная информация:

Re: segmentation fault починка

Сообщение Hephaestus »

yoricI писал:
16.03.2019 05:59
И где концы искать?
Сегфолт обычно означает, что программа полезла не в ту область памяти, в какую надо.
Первое, что приходит на ум - некорректный указатель - обращение к объекту, которого нет, попытка уничтожить в памяти объект, которого нет. Возможно, дело просто в неинициализированной переменной.
Можно попробовать отладочный режим.
Собрать со всякими там отладочными символами, задать уровень вывода сообщений, как можно подробней.
А то и вообще запустить через отладчик, если уж strace надоел.
Вряд ли это будет проще, чем strace, но может получиться эффективно.
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:
Аватара пользователя
yoricI
Сообщения: 2345
ОС: gentoo fluxbox

Re: segmentation fault починка

Сообщение yoricI »

Не то что надоел, но не особо понятно. Тем более debug, а напишу-ка я просто bug :-) Рапорт который.
А вот кстати, помнится, на заре моего linux-знакомства (RH6, debian 3), если программа падала, то создавался какой-то дамп-файл, я ещё их вручную удалял. Сейчас (уже давненько) этого нет. Был ли в этом толк? Посчитали, наверное, что общая стабильность возросла и можно отключить? Наверное, glibc какая-нибудь этим заведует?

А вот, кстати, в syslog:
Mar 16 14:48:54 [kernel] sqlitebrowser[11634]: segfault at 8 ip 00007f3006bc7e91 sp 00007ffe4f2843e0 error 4 in libQt5Core.so.5.11.3[7f3006a89000+4bf000]
Mar 16 14:48:54 [kernel] Code: 00 00 00 00 00 66 2e 0f 1f 84 00 00 00 00 00 66 2e 0f 1f 84 00 00 00 00 00 41 55 41 54 55 53 48 83 ec 08 48 8b 07 48 8d 48
10 <48> 63 78 08 48 63 40 0c 48 8d 1c f9 4c 8d 2c c1 4c 39 eb 74 4a 41

Знакомые буквы есть, но что с ними делать, не знаю :-)
Спасибо сказали:
Аватара пользователя
devilr
Сообщения: 3665
ОС: Mandriva => Gentoo (~amd64)
Контактная информация:

Re: segmentation fault починка

Сообщение devilr »

Ну, в таких случаях я бы попробовал пересобрать ещё и qtcore. На всякий случай.
Мудрость приходит с возрастом.
Иногда возраст приходит один.
Эхо разума
Спасибо сказали:
Аватара пользователя
ormorph
Сообщения: 2600
ОС: Gentoo

Re: segmentation fault починка

Сообщение ormorph »

Под рутом выполнять пробовали?
Спасибо сказали:
Аватара пользователя
devilr
Сообщения: 3665
ОС: Mandriva => Gentoo (~amd64)
Контактная информация:

Re: segmentation fault починка

Сообщение devilr »

Кстати, только что проверил - у меня тоже падает. Забавно. Есть что поковырять! :)
P.S. И рут здесь не при чём - там будет тот же segfault
Мудрость приходит с возрастом.
Иногда возраст приходит один.
Эхо разума
Спасибо сказали:
Аватара пользователя
yoricI
Сообщения: 2345
ОС: gentoo fluxbox

Re: segmentation fault починка

Сообщение yoricI »

Истинно так, и пересборка qtcore не помогла. Повезло, ждём решения и объяснения :-)
Спасибо сказали:
Аватара пользователя
devilr
Сообщения: 3665
ОС: Mandriva => Gentoo (~amd64)
Контактная информация:

Re: segmentation fault починка

Сообщение devilr »

Хм. Чем дальше в лес - тем интереснее. Если просто взять тарбол из distfiles, просто распаковать и собрать - всё работает. Но, файл при этом получается гораздо больше, чем тот, что штатно ставится в систему. Есть подозрение на патч sqlitebrowser-3.10.1-unbundle.patch (но это пока только догадки)
Если нужно срочно - можно просто собрать в том же qtcreator и пользоваться. Я пока буду ковырять дальше...
Мудрость приходит с возрастом.
Иногда возраст приходит один.
Эхо разума
Спасибо сказали:
Аватара пользователя
yoricI
Сообщения: 2345
ОС: gentoo fluxbox

Re: segmentation fault починка

Сообщение yoricI »

Не срочно, а что за qtcreator? Не такого в системе.
Спасибо сказали:
Аватара пользователя
devilr
Сообщения: 3665
ОС: Mandriva => Gentoo (~amd64)
Контактная информация:

Re: segmentation fault починка

Сообщение devilr »

yoricI писал:
16.03.2019 12:37
Не срочно, а что за qtcreator? Не такого в системе.
Это IDE. Можно и без него собрать. В каталоге сборки (туда, куда распаковали тарбол)

Код: Выделить всё

$ qmake sqlitebrowser.pro
$ make
в каталоге src будет лежать исполнимый файл sqlitebrowser
Мудрость приходит с возрастом.
Иногда возраст приходит один.
Эхо разума
Спасибо сказали:
Аватара пользователя
s.xbatob
Сообщения: 1139
ОС: Fedora

Re: segmentation fault починка

Сообщение s.xbatob »

yoricI писал:
16.03.2019 12:37
а что за qtcreator? Не такого в системе.
Где его нет?

Это IDE для Qt, часть проекта Qt

Впрочем, тулза не сильно удобная, и, в любом случае, опциональная
Спасибо сказали:
Аватара пользователя
yoricI
Сообщения: 2345
ОС: gentoo fluxbox

Re: segmentation fault починка

Сообщение yoricI »

s.xbatob писал:
16.03.2019 12:50
Где его нет
Так в gentoo вроде. eix молчит, по путям нету.
Спасибо сказали:
Аватара пользователя
devilr
Сообщения: 3665
ОС: Mandriva => Gentoo (~amd64)
Контактная информация:

Re: segmentation fault починка

Сообщение devilr »

Пакет называется dev-qt/qt-creator
Но, если вы не программист - смысла его ставить особого нет. Это я ведь так сказал - чтобы собрать программу в стиле "тыкнул мышой и всё запустилось" :)
Мудрость приходит с возрастом.
Иногда возраст приходит один.
Эхо разума
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: segmentation fault починка

Сообщение Bizdelnick »

Hephaestus писал:
16.03.2019 09:58
А то и вообще запустить через отладчик, если уж strace надоел.
А чем тут strace вообще может помочь? Только отладчиком и ковырять.
yoricI писал:
16.03.2019 10:59
помнится, на заре моего linux-знакомства (RH6, debian 3), если программа падала, то создавался какой-то дамп-файл, я ещё их вручную удалял. Сейчас (уже давненько) этого нет. Был ли в этом толк?
Был и есть. Чтобы сохранялся, надо сделать ulimit -c unlimited. Потом его можно скормить gdb. Впрочем, если проблема воспроизводится стабильно, проще сразу под gdb запустить.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
devilr
Сообщения: 3665
ОС: Mandriva => Gentoo (~amd64)
Контактная информация:

Re: segmentation fault починка

Сообщение devilr »

Чтобы sqlitebrowser запустить "сразу под gdb" его сначала нужно пересобрать с "debugging symbols" Иначе будем лицезреть просто ошибку, которая уже описывалась в начале темы.
Я бы просто собрал вручную и пользовался...
Мудрость приходит с возрастом.
Иногда возраст приходит один.
Эхо разума
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: segmentation fault починка

Сообщение Bizdelnick »

devilr писал(а):
16.03.2019 13:58
Чтобы sqlitebrowser запустить "сразу под gdb" его сначала нужно пересобрать с "debugging symbols" Иначе будем лицезреть просто ошибку, которая уже описывалась в начале темы.
Ну в принципе и без них будет видно, хотя бы, где происходит падение: в самом sqlitebrowser или в какой-то библиотеке. Но для дальнейшего разбирательства да, надо пересобирать с дебагом, причём и библиотеки тоже.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
yoricI
Сообщения: 2345
ОС: gentoo fluxbox

Re: segmentation fault починка

Сообщение yoricI »

Bizdelnick писал:
16.03.2019 13:43
А чем тут strace вообще может помочь?
Как это чем? Покажет, на чём падает вроде, если на каком системном вызове, то тут я пас, а если по отсутствию некоего файла или прав, то можно подумать.
ulimit полезная тема.
Спасибо сказали:
Аватара пользователя
devilr
Сообщения: 3665
ОС: Mandriva => Gentoo (~amd64)
Контактная информация:

Re: segmentation fault починка

Сообщение devilr »

Bizdelnick Ну. если просто собрать программу и она работает в той же самой среде, что и та, которую хотите запустить из пакета (и, которая не работает) - то дело вряд ли в системных библиотеках.
А вот то, что файлы разные по размеру - это как раз очень заметно. Скорее всего проблема явно в линковке. Но, лично я бы не стал заморачиваться - эта "тулза" не настолько критична, чтобы шибко ковырять пакет. Имхо.
Последний раз редактировалось devilr 16.03.2019 14:20, всего редактировалось 1 раз.
Мудрость приходит с возрастом.
Иногда возраст приходит один.
Эхо разума
Спасибо сказали:
Аватара пользователя
yoricI
Сообщения: 2345
ОС: gentoo fluxbox

Re: segmentation fault починка

Сообщение yoricI »

devilr писал(а):
16.03.2019 14:18
Но, лично я бы не стал заморачиваться - эта "тулза" не настолько критична, чтобы шибко ковырять пакет.
Критична не критична, но полезна. Замены-то нет? То есть непоборимые сложности встретились?
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: segmentation fault починка

Сообщение Bizdelnick »

yoricI писал:
16.03.2019 14:12
Покажет, на чём падает вроде, если на каком системном вызове, то тут я пас, а если по отсутствию некоего файла или прав, то можно подумать.
Сегфолт не должен случаться ни из-за отсутствия файла, ни из-за нехватки прав. То есть всякое бывает, конечно, но даже в таком случае это баг в коде.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
s.xbatob
Сообщения: 1139
ОС: Fedora

Re: segmentation fault починка

Сообщение s.xbatob »

devilr писал(а):
16.03.2019 14:18
А вот то, что файлы разные по размеру - это как раз очень заметно. Скорее всего проблема явно в линковке.
судя по названию патча: что-то-там-unbundle -- там прилинкована локальная копия чего-то общего, вероятно, библиотеки. А это обычно не просто так делается.
Спасибо сказали:
Аватара пользователя
devilr
Сообщения: 3665
ОС: Mandriva => Gentoo (~amd64)
Контактная информация:

Re: segmentation fault починка

Сообщение devilr »

s.xbatob писал:
16.03.2019 15:03
devilr писал(а):
16.03.2019 14:18
А вот то, что файлы разные по размеру - это как раз очень заметно. Скорее всего проблема явно в линковке.
судя по названию патча: что-то-там-unbundle -- там прилинкована локальная копия чего-то общего, вероятно, библиотеки. А это обычно не просто так делается.
Похоже, что да. Есть каталоги qhexedit, qscintilla, qcustomplot прям в самом коде. Сам пакет их имеет в зависимостях, причём внешних. Зачем так сделано - непонятно.
Мудрость приходит с возрастом.
Иногда возраст приходит один.
Эхо разума
Спасибо сказали:
Аватара пользователя
Hephaestus
Сообщения: 3729
Статус: Многоуважаемый джинн...
ОС: Slackware64-14.1/14.2
Контактная информация:

Re: segmentation fault починка

Сообщение Hephaestus »

Bizdelnick писал:
16.03.2019 13:43
А чем тут strace вообще может помочь?
Не знаю, я сам этой штукой ни разу не пользовался.
Я исходил из того, что ТС знает, что делает.
И поскольку, ТС раньше это использовал, вероятно, ему это помогало.
Я, вообще-то, думал, что strace создаёт нечто вроде дампа. Но нет, я ошибся.
Хотя вот здесь есть пример нахождения ошибки, когда весь вывод перенаправлен в /dev/null и, соответственно, сообщений не видно. Но в случае сегфолта это, конечно, не поможет.
Пускай скрипят мои конечности.
Я - повелитель бесконечности...
Мой блог
Спасибо сказали:
Аватара пользователя
yoricI
Сообщения: 2345
ОС: gentoo fluxbox

Re: segmentation fault починка

Сообщение yoricI »

sqlitebrowser обновился на одну десятую, падать перестал, заработал.
Спасибо сказали:
Аватара пользователя
yoricI
Сообщения: 2345
ОС: gentoo fluxbox

Re: segmentation fault починка

Сообщение yoricI »

Давненько стал падать сразу при запуске quadrapassel (это тетрисподобная игра) по segfault.

Код: Выделить всё

Mar 07 17:55:52 [kernel] quadrapassel[30429]: segfault at 0 ip 0000000000000000 sp 00007ffdae0f33f8 error 14 in .glPq40rA (deleted)[402fe000+2000] likely
on CPU 2 (core 2, socket 0)
Mar 07 17:55:52 [kernel] Code: Unable to access opcode bytes at 0xffffffffffffffd6.
.......
Mar 07 17:56:09 [kernel] quadrapassel[30436]: segfault at 0 ip 0000000000000000 sp 00007ffdb9ae6b38 error 14 in .glJkqDDx (deleted)[40d71000+2000] likely
on CPU 2 (core 2, socket 0)
Mar 07 17:56:09 [kernel] Code: Unable to access opcode bytes at 0xffffffffffffffd6.
.........
Mar 07 18:08:44 [kernel] quadrapassel[31971]: segfault at 0 ip 0000000000000000 sp 00007ffe56b47998 error 14 likely on CPU 3 (core 3, socket 0)
Mar 07 18:08:44 [kernel] Code: Unable to access opcode bytes at 0xffffffffffffffd6.
Запустил его под strace - не падает, работает от начала до конца. Эффект стабильный. Как так может быть?
Спасибо сказали:
Аватара пользователя
Bizdelnick
Модератор
Сообщения: 20752
Статус: nulla salus bello
ОС: Debian GNU/Linux

Re: segmentation fault починка

Сообщение Bizdelnick »

yoricI писал:
07.03.2023 15:04
Как так может быть?
википедия://гейзенбаг
Только, в очередной раз повторяю, от strace при диагностике сегфолтов толку чуть больше нуля. Под отладчиком (gdb) надо запускать.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:
Аватара пользователя
yoricI
Сообщения: 2345
ОС: gentoo fluxbox

Re: segmentation fault починка

Сообщение yoricI »

Придумают же)) Так-то понятно, что временные параметры изменились. Да и чёрт с ней, буду через strace играть))
Спасибо сказали:
Аватара пользователя
devilr
Сообщения: 3665
ОС: Mandriva => Gentoo (~amd64)
Контактная информация:

Re: segmentation fault починка

Сообщение devilr »

quadrapassel падает в сегфолт и просто после запуска. Если просто нажать любую клавишу, не начиная новую игру. Если начать - всё работает.
Мудрость приходит с возрастом.
Иногда возраст приходит один.
Эхо разума
Спасибо сказали:
Ответить