Чтобы добавлять сообщения и комментарии, .

@Strephil:
Strephil

Imagemagick использует форум в качестве багтрекера.
Форум, Карл.

@Strephil:
Strephil

Умудрился написать на python программу, которая вылетает в сегфолт.
На C можно писать на любом языке!

@qnikst:
qnikst

ты это в песочнице пересобери integer-gmp с проф явно:
cabal install integer-gmp --enable-library-profiling --reinstall --force-reinstalls

@Strephil:
Strephil

это я совсем в другом месте забыл звездочку поставить, поэтому размер оказался некорректный, и что-то там в памяти перетёрлось, вот потом и вылетало при вызове malloc.

Я успешный программист. Поправить один segfault занимает час.

@Strephil:
Strephil

Моя сегфолт-ориентированная программа сегфолтится на вызове malloc.
Это довольно грустно :-(

@Strephil:
Strephil

И вновь вылетает в segfault,
И кулер тревожно гудит…

@Strephil:
Strephil

А есть ли какая-нибудь песенка про сегфолты?

@egplife:
egplife

гыыы

TeX test \infinity

Executable: kopete PID: 32445 Signal: Segmentation fault (11)
=)
вот они ваши хвалёные C++ и Qt

@balodja:
balodja

functionaljobs.com
functionaljobs.com

@segfault:
segfault

Не придумал лучшего способа отладить, кроме как навтыкать трейсов, хотите посмотреть ?
% dist/build/stupid/stupid
with SqliteConn!!
reset !!!!!!!!
reset !!!!!!!!
reset !!!!!!!!
Migrating: CREATE TABLE "persist"("id" INTEGER PRIMARY KEY,"pico" NUMERIC(22,12) NOT NULL)
reset !!!!!!!!
reset !!!!!!!!
insert !!!!
reset !!!!!!!!
reset !!!!!!!!
reset !!!!!!!!
reset !!!!!!!!
select !!!1111
"get PersistInt64 1: Expected Rational, received: PersistDouble 24.44455524"
reset !!!!!!!!
reset !!!!!!!!
close connection !!11!111
reset !!!!!!!!
zsh: segmentation fault dist/build/stupid/stupid
А вот код проекта
bpaste.net
Как такое может быть я просто не понимаю, ведь reset вызывается лишь один раз — внутри bracketP в функции get ... Ну ладно вызовы ДО "select !!!!!" там я не сильно смотрел да и миграция базы и все такое, пусть там дохрена запросов, но после вызова select делается два reset, да еще один после закрытия конекта, я нихуя не понимаю как так то !!!

@segfault:
segfault

Отписываюсь про вчерашние изыскания моего сегфолта в персистенте.
Сегфолт возникает в функции sqlite3_reset, когда withConnection запускается внутри ResourceT, а не наоборот, как и должно быть. Сегфолт вызывается ошибкой конвертирования данных из PersistValue в целевой тип во время селекта, вернее не самой этой ошибкой, конечно, а происходит при возникновении этой ошибки. При чем, если внутри ResourceT просто вручную сделать error "blabla", то ошибка не вызывает сегфолта.
Сам сегфолт возникает в функции sqlite3_reset (биндинг), скорее всего из-за того, что соединение закрывается раньше, чем финализируется Statement (ведь ResourceT снаружи WithConnection, правда финализация все равно должна происходить в bracketP). Другое предположение: Statement финализируется дважды, один раз, при возникновении ошибки внутри bracketP, второй раз в runResourceT по каким — то мистическим причинам. Только не ясно при чем сдесь тогда withConnection.
Короче до конца еще не разобрался, кому интересно вот github.com код. В ветке fixedval мой код поверх Сноймановского master.
Есть предложения как отлаживать кроме отладочной печати ?

@segfault:
segfault

тааак, походу мои правки в persistent вызывают SEGFAULT во время тестирования. Как найти где именно оно происходит ?

@Equidamoid:
Equidamoid

это я один такой счастливый, что временами ловлю сегфолт иксов по кнопке ентер?

@alkov:
alkov

Копирование ячейки 1Совской таблицы из терминала (remmina, freerdp) и вставка в 1С в вбоксовской виртуалке приводит к падению последней:
Dec 28 20:30:50 ubuntu kernel: [93518.301869] VirtualBox[5117]: segfault at 539 ip 00007f9d4973fd16 sp 00007f9d48c84790 error 6 in VBoxC.so[7f9d49704000+bb000]
Воспроизвёл 2 раза. VBox последний из 3-й ветки, Аддишнсы соответствующие

@Mazdaywik:
Mazdaywik

Оказывается, программу можно свалить на SEGFAULT, указав специально подобранное значение n в операторе new T[n] на 32-разрядной системе. Т.е. упомянутый оператор сам по себе порождает SEGFAULT (а не только успешное завершение или исключение std::bad_alloc). О потенциальной уязвимости такого кода я узнал из книжки "24 смертных греха компьютерной безопасности" (авторов не помню, должна нагуглиться). Код (в первом комменте) я откомпилировал 5 компиляторами:

* MinGW g++ 3.2.3
* Borland C++ 5.5
* Сишный компилятор из Microsoft Visual Studio 8
* g++ 2.95.3 под QNX
* qcc 2.95.3 под QNX (фактически, разновидность g++ с другими аргументами командной строки)

Свободен от ошибки был только рантайм компилятора из MS VS.

Сам "эксплойт" в комменте.

Тестирование на других ОС (включая последний тег) и под другими компиляторами приветствуется)

Слабо объяснить результаты тестов?

@mikachiari:
mikachiari

"Segmentation Fault: What do you mean mind the asteroid? What astero"

@freefd:
freefd

чудесно, набор conky-colors настолько суров, что сегфолтит коньки :)

fd@homestation ~ $ conky -Dc .conkyrc_
Conky: border_margin is deprecated, please use window.border_inner_margin instead
DEBUG(0) [conky.c:8821]: reading contents from config file '.conkyrc_'
DEBUG(0) [conky.c:3402]: no templates to replace
DEBUG(0) [conky.c:2149]: if_existing: '/proc/net/route' 'wlan0'
DEBUG(0) [conky.c:2149]: if_existing: '/proc/net/route' 'eth0'
DEBUG(0) [conky.c:2149]: if_existing: '/proc/net/route' 'ppp0'
Conky: desktop window (a3) is root window
Conky: window type — override
Conky: drawing to created window (0x4200001)
Conky: drawing to double buffer
Conky: obj->data.cpu_index 2 info.cpu_count 1
Conky: attempting to use more CPUs than you have!
Segmentation fault
fd@homestation ~ $

@freefd:
freefd

граждане, будьте внимательны, adblock+ после обновления до 1.1.9.9 роняет хромиум. возможно, и хром роняет тоже. пока что я отказался от него в пользу adsweep.