Simple scan ошибка сегментирования

I can no longer run Simple-scan on 14.04 under kernel 3.13.0-34-generic.

It quits before the UI loads and when I run simple-scan from terminal I get a segmentation fault. It’s such a useful tool for me and I’m annoyed because it used to work perfectly. All I have changed recently (other than routine dist-upgrades) was ‘dpkg —add-architecture i386’ to get the latest version of Crossover running.

Any ideas?

I’m temporarily using ‘gscan2pdf’ which is ok but really slows down my workflow when compared to Simple Scan.

Thanks in advance!

asked Aug 26, 2014 at 19:56

transamazonian's user avatar

transamazoniantransamazonian

3911 gold badge5 silver badges11 bronze badges

2

What worked for me was:

  1. Delete the files in ~/.cache/simple-scan/autosaves/

  2. Delete the file ~/.cache/simple-scan/state

Found out the error using simple-scan -d.

Hope it helps someone.

lol768's user avatar

lol768

3181 gold badge3 silver badges12 bronze badges

answered Aug 23, 2015 at 14:12

vishank's user avatar

1

In my case the simple-scan Directory and Files had wrong permissions.
Due to running simple-scan first with sudo, the Dir and Files had root:root rights.

Just change Permissions to your Users Permissions:

sudo chown -R myuser:mygrp ~/.cache/simple-scan

pa4080's user avatar

pa4080

29.4k10 gold badges85 silver badges161 bronze badges

answered Apr 19, 2017 at 11:08

Martin's user avatar

1

You must log in to answer this question.

Not the answer you’re looking for? Browse other questions tagged

.

Я больше не могу запускать Simple-scan 14.04 под ядром 3.13.0-34-generic.

Он завершает работу до того, как пользовательский интерфейс загружается, и когда я запускаю простое сканирование с терминала, возникает ошибка сегментации. Это такой полезный инструмент для меня, и я раздражен, потому что раньше он работал идеально. Все, что я изменил в последнее время (кроме обычных dist-upgrade), это ‘dpkg —add-Architecture i386’, чтобы запустить последнюю версию Crossover.

Есть идеи?

Я временно использую «gscan2pdf», что нормально, но действительно замедляет мой рабочий процесс по сравнению с Simple Scan.

Заранее спасибо!

2014-08-26 19:56

2
ответа

Что сработало для меня:

  1. Удалите файлы в ~/.cache/simple-scan/autosaves/

  2. Удалить файл ~/.cache/simple-scan/state

Обнаружил ошибку с помощью simple-scan -d,

Надеюсь, это кому-нибудь поможет.


vishank

23 авг ’15 в 14:12
2015-08-23 14:12

2015-08-23 14:12

В моем случае simple-scan Каталог и файлы имели неправильные разрешения. Из-за бега simple-scan сначала с sudoРежиссёр и Файлы имели root:root прав.

Просто измените разрешения для ваших пользователей.

sudo chown -R myuser:mygrp ~/.cache/simple-scan


Martin

19 апр ’17 в 11:08
2017-04-19 11:08

2017-04-19 11:08

I can no longer run Simple-scan on 14.04 under kernel 3.13.0-34-generic.

It quits before the UI loads and when I run simple-scan from terminal I get a segmentation fault. It’s such a useful tool for me and I’m annoyed because it used to work perfectly. All I have changed recently (other than routine dist-upgrades) was ‘dpkg —add-architecture i386’ to get the latest version of Crossover running.

Any ideas?

I’m temporarily using ‘gscan2pdf’ which is ok but really slows down my workflow when compared to Simple Scan.

Thanks in advance!

asked Aug 26, 2014 at 19:56

transamazonian's user avatar

transamazoniantransamazonian

3911 gold badge5 silver badges11 bronze badges

2

What worked for me was:

  1. Delete the files in ~/.cache/simple-scan/autosaves/

  2. Delete the file ~/.cache/simple-scan/state

Found out the error using simple-scan -d.

Hope it helps someone.

lol768's user avatar

lol768

3181 gold badge3 silver badges12 bronze badges

answered Aug 23, 2015 at 14:12

vishank's user avatar

1

In my case the simple-scan Directory and Files had wrong permissions.
Due to running simple-scan first with sudo, the Dir and Files had root:root rights.

Just change Permissions to your Users Permissions:

sudo chown -R myuser:mygrp ~/.cache/simple-scan

pa4080's user avatar

pa4080

29.4k10 gold badges85 silver badges161 bronze badges

answered Apr 19, 2017 at 11:08

Martin's user avatar

1

You must log in to answer this question.

Not the answer you’re looking for? Browse other questions tagged

.

#
10 лет, 6 месяцев назад

Темы:

32

Сообщения:

152

Участник с: 12 октября 2011

Не могу ничем отсканировать, вылетает через несколько секунд после запуска программ, раньше все работало, в убунте на этом же компе все норм

$simple-scan -d
[+0,00s] DEBUG: simple-scan.vala:582: Starting Simple Scan 3.6.0, PID=32025
[+0,00s] DEBUG: Connecting to session manager
[+0,04s] DEBUG: ui.vala:1404: Restoring window to 600x400 pixels
[+0,14s] DEBUG: scanner.vala:1378: sane_init () -> SANE_STATUS_GOOD
[+0,14s] DEBUG: scanner.vala:1384: SANE version 1.0.23
[+0,14s] DEBUG: scanner.vala:1445: Requesting redetection of scan devices
[+0,14s] DEBUG: scanner.vala:753: Processing request
Ошибка сегментирования (core dumped)

$hp-scan -g
HP Linux Imaging and Printing System (ver. 3.12.11)
Scan Utility ver. 2.2
Copyright (c) 2001-14 Hewlett-Packard Development Company, LP
This software comes with ABSOLUTELY NO WARRANTY.
This is free software, and you are welcome to distribute it
under certain conditions. See COPYING file for more details.
hp-scan[702]: debug: getDeviceUri(None, None, ['hpaio'], {'scan-type': (<built-in function gt>, 0)}, , True)
hp-scan[702]: debug: Mode=0
hp-scan[702]: debug: hp:/usb/HP_LaserJet_Professional_M1132_MFP?serial=000000000QH30D85SI1c: back_end:hp is_hp:True bus:usb model:HP_LaserJet_Professional_M1132_MFP serial:000000000QH30D85SI1c dev_file: host: zc: port:1
hp-scan[702]: debug: Cache miss: hp_laserjet_professional_m1132_mfp
hp-scan[702]: debug: Reading file: /usr/share/hplip/data/models/models.dat
hp-scan[702]: debug: Searching for section [hp_laserjet_professional_m1132_mfp] in file /usr/share/hplip/data/models/models.dat
hp-scan[702]: debug: Found section [hp_laserjet_professional_m1132_mfp] in file /usr/share/hplip/data/models/models.dat
hp-scan[702]: debug: {'hpaio:/usb/HP_LaserJet_Professional_M1132_MFP?serial=000000000QH30D85SI1c': ['HP_LaserJet_Professional_M1132_MFP_2']}
Using device: hpaio:/usb/HP_LaserJet_Professional_M1132_MFP?serial=000000000QH30D85SI1c
warning: No destinations specified. Adding 'file' destination by default.
Ошибка сегментирования (core dumped)

$ xsane
Ошибка сегментирования (core dumped)

Natrio

#
10 лет, 6 месяцев назад

Темы:

48

Сообщения:

4769

Участник с: 08 января 2011

Откатите пакет sane на предыдущую версию и попробуйте тогда.

aspiring

#
10 лет, 6 месяцев назад

Темы:

32

Сообщения:

152

Участник с: 12 октября 2011

странно, поставил старую:

sudo pacman -U sane-1.0.22-9-x86_64.pkg.tar.xz

потом, как и ожидалось — западло:

simple-scan
simple-scan: error while loading shared libraries: libgphoto2.so.2: cannot open shared object file: No such file or directory

ставлю обратно

sudo pacman -S simple-scan

и все заработало, возможно нужно было просто переустановить саню,

Natrio

— респект!

aspiring

#
10 лет, 6 месяцев назад

Темы:

32

Сообщения:

152

Участник с: 12 октября 2011

Сегодня опять вылезла та же ошибка, поставил предыдущю версию

sudo pacman -U sane-1.0.23-2-x86_64.pkg.tar.xz

пока работает

Не всегда программы в Linux запускаются как положено. Иногда, в силу разных причин программа вместо нормальной работы выдает ошибку. Но нам не нужна ошибка, нам нужна программа, вернее, та функция, которую она должна выполнять. Сегодня мы поговорим об одной из самых серьезных и непонятных ошибок. Это ошибка сегментации Ubuntu. Если такая ошибка происходит только один раз, то на нее можно не обращать внимания, но если это регулярное явление нужно что-то делать.

Конечно, случается эта проблема не только в Ubuntu, а во всех Linux дистрибутивах, поэтому наша инструкция будет актуальна для них тоже. Но сосредоточимся мы в основном на Ubuntu. Рассмотрим что такое ошибка сегментирования linux, почему она возникает, а также как с этим бороться и что делать.

Что такое ошибка сегментации?

Ошибка сегментации, Segmentation fault, или Segfault, или SIGSEGV в Ubuntu и других Unix подобных дистрибутивах, означает ошибку работы с памятью. Когда вы получаете эту ошибку, это значит, что срабатывает системный механизм защиты памяти, потому что программа попыталась получить доступ или записать данные в ту часть памяти, к которой у нее нет прав обращаться.

Чтобы понять почему так происходит, давайте рассмотрим как устроена работа с памятью в Linux, я попытаюсь все упростить, но приблизительно так оно и работает.

Допустим, в вашей системе есть 6 Гигабайт оперативной памяти, каждой программе нужно выделить определенную область, куда будет записана она сама, ее данные и новые данные, которые она будет создавать. Чтобы дать возможность каждой из запущенных программ использовать все шесть гигабайт памяти был придуман механизм виртуального адресного пространства. Создается виртуальное пространство очень большого размера, а из него уже выделяется по 6 Гб для каждой программы. Если интересно, это адресное пространство можно найти в файле /proc/kcore, только не вздумайте никуда его копировать.

Выделенное адресное пространство для программы называется сегментом. Как только программа попытается записать или прочитать данные не из своего сегмента, ядро отправит ей сигнал SIGSEGV и программа завершится с нашей ошибкой. Более того, каждый сегмент поделен на секции, в некоторые из них запись невозможна, другие нельзя выполнять, если программа и тут попытается сделать что-то запрещенное, мы опять получим ошибку сегментации Ubuntu.

Почему возникает ошибка сегментации?

И зачем бы это порядочной программе лезть, куда ей не положено? Да в принципе, незачем. Это происходит из-за ошибки при написании программ или несовместимых версиях библиотек и ПО. Часто эта ошибка встречается в программах на Си или C++. В этом языке программисты могут вручную работать с памятью, а язык со своей стороны не контролирует, чтобы они это делали правильно, поэтому одно неверное обращение к памяти может обрушить программу.

Почему может возникать эта ошибка при несовместимости библиотек? По той же причине — неверному обращению к памяти. Представим, что у нас есть библиотека linux (набор функций), в которой есть функция, которая выполняет определенную задачу. Для работы нашей функции нужны данные, поэтому при вызове ей нужно передать строку. Наша старая версия библиотеки ожидает, что длина строки будет до 256 символов. Но программа была обновлена формат записи поменялся, и теперь она передает библиотеке строку размером 512 символов. Если обновить программу, но оставить старую версию библиотеки, то при передаче такой строки 256 символов запишутся нормально в подготовленное место, а вот вторые 256 перезапишут данные программы, и возможно, попытаются выйти за пределы сегмента, тогда и будет ошибка сегментирования linux.

Что делать если возникла ошибка сегментирования?

Если вы думаете, что это ошибка в программе, то вам остается только отправить отчет об ошибке разработчикам. Но вы все-таки еще можете попытаться что-то сделать.

Например, если падает с ошибкой сегментации неизвестная программа, то мы можем решить что это вина разработчиков, но если с такой ошибкой падает chrome или firefox при запуске возникает вопрос, может мы делаем что-то не так? Ведь это уже хорошо протестированные программы.

Первое, что нужно сделать — это обновить систему до самой последней версии, возможно, был баг и его уже исправили, а может у вас установлены старые версии библиотек и обновление решит проблему. В Ubuntu это делается так:

sudo apt update
sudo apt full-upgrade

Если это не помогло, нужно обнулить настройки программы до значений по умолчанию, возможно, удалить кэш. Настройки программ в Linux обычно содержатся в домашней папке, скрытых подкаталогах с именем программы. Также, настройки и кэш могут содержаться в каталогах ~/.config и ~/.cache. Просто удалите папки программы и попробуйте снова ее запустить. Если и это не помогло, вы можете попробовать полностью удалить программу, а потом снова ее установить, возможно, какие-нибудь зависимости были повреждены:

sudo apt remove пакет_программы
sudo apt autoremove
sudo apt install пакет_программы

Если есть возможность, попробуйте установить программу из другого источника, например, не из PPA, а более старую версию, из официальных репозиториев.

Когда вы все это выполнили, скорее всего, проблема не в вашем дистрибутиве, а в самой программе. Нужно отправлять отчет разработчикам. В Ubuntu это можно сделать с помощью программы apport-bug. Обычно Ubuntu предлагает это сделать сразу, после того как программа завершилась с ошибкой сегментирования. Если же ошибка сегментирования Ubuntu встречается не в системной программе, то вам придется самим искать разработчиков и вручную описывать что произошло.

Чтобы помочь разработчикам решить проблему, недостаточно отправить им только сообщение что вы поймали Segmentation Fault, нужно подробно описать проблему, действия, которые вы выполняли перед этим, так чтобы разработчик мог их воспроизвести. Также, желательно прикрепить к отчету последние функции, которые вызывала программа (стек вызовов функций), это может очень сильно помочь разработчикам.

Рассмотрим, как его получить. Это не так уж сложно. Сначала запустите вашу программу, затем узнайте ее PID с помощью команды:

pgrep программа

Дальше запускаем отладчик gdb:

sudo gdb -q

Подключаемся к программе:

(gdb) attach ваш_pid

После подключения программа станет на паузу, продолжаем ее выполнение командой:

(gdb) continue

segfault

Затем вам осталось только вызвать ошибку:

segfault1

И набрать команду, которая выведет стек последних вызовов:

(gdb) backtrace

Вывод этой команды и нужно отправлять разработчикам. Чтобы отключиться от программы и выйти наберите:

(gdb) detach
(gdb) quit

Дальше остается отправить отчет и ждать исправления ошибки. Если вы не уверены, что ошибка в программе, можете поспрашивать на форумах. Когда у вас есть стек вызовов, уже можно попытаться, если не понять в чем проблема, то попытаться узнать, не сталкивался ли с подобной проблемой еще кто-то.

Выводы

Теперь у вас есть приблизительный план действий, что нужно делать, когда появляется ошибка сегментирования сделан дамп памяти ubuntu. Если вы знаете другие способы решить эту проблему, напишите в комментариях!

Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.

Понравилась статья? Поделить с друзьями:
  • Shindaiwa real dual 500 ошибка e06
  • Simple memory test ошибка
  • Shift ошибка шевроле авео
  • Shift to p range ошибка тойота
  • Simovert masterdrives ошибки