# [SOLVED] Firefox: Ошибка сегментирования

## Laitr Keiows

Падает огнелис с пустым профилем:

```
user@localhost ~ $ firefox 

No running windows found

/usr/libexec/mozilla-launcher: line 117:  8452 Ошибка сегментирования

"$mozbin" "$@"

firefox-bin exited with non-zero status (139)
```

От чего бы это могло быть?

Делал revdep-rebuild. Пересобирал его самого. Как бы отследить от чего он падает?Last edited by Laitr Keiows on Fri Oct 27, 2006 6:50 pm; edited 1 time in total

----------

## 046

 *Laitr Keiows wrote:*   

> Как бы отследить от чего он падает?

 

Из-за плагина запросто  :Smile: 

strace помогает найти проблему.

В особо тяжёлых случаях помогает сборка с отладочной информацией, и запуск в отладчике  :Smile: 

----------

## Laitr Keiows

 *046 wrote:*   

>  *Laitr Keiows wrote:*   Как бы отследить от чего он падает? 
> 
> Из-за плагина запросто 

 

Плагинов никаких нет, т.к. пустой профиль.

Спасибо за совет, попробую вечером со strace.

----------

## SergDL

У меня такая проблема решилась пересборкой zlib с безопасными флагами в /etc/make.conf

----------

## Laitr Keiows

 *SergDL wrote:*   

> У меня такая проблема решилась пересборкой zlib с безопасными флагами в /etc/make.conf

 

У меня -O2 -march=... -pipe -fomit-frame-pointer с первой установки. Так что пересборка не помогла  :Sad: 

----------

## SergDL

Ну тогда firefox -g, потом run и что gdb покажет...

----------

## dmiceman

strace наше все! только пускать его с ключиком -f -o log.txt и изучать результаты очень внимательно. у меня он падал на libfam.so что уж там ему не нравилось -- не знаю, но пересборка fam-а помогла.

----------

## Laitr Keiows

```
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,

0) = 0xb7cc3000

open("/usr/share/locale/ru_RU.UTF-8@iso/LC_MESSAGES/libc.mo", O_RDONLY)

= -1 ENOENT (No such file or directory)

........

open("/usr/share/locale/ru/LC_MESSAGES/libc.mo", O_RDONLY) = 3

fstat64(3, {st_mode=S_IFREG|0644, st_size=107445, ...}) = 0

mmap2(NULL, 107445, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7ca8000

close(3)                                = 0

open("/usr/lib/gconv/KOI8-R.so", O_RDONLY) = 3

read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\240\4\0"...,

512) = 512

fstat64(3, {st_mode=S_IFREG|0755, st_size=9588, ...}) = 0

mmap2(NULL, 12316, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0)

= 0xb7ca4000

mmap2(0xb7ca6000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|

MAP_DENYWRITE, 3, 0x1) = 0xb7ca6000

close(3)                                = 0

write(2, "/usr/libexec/mozilla-launcher: l"...,

124/usr/libexec/mozilla-launcher: line 117: 25552 Ошибка сегментирования

"$mozbin" "$@"

) = 124
```

Похоже падает на кривой локали...   :Shocked: 

Попробуем поправить.

----------

## dmiceman

 *Laitr Keiows wrote:*   

> Похоже падает на кривой локали...  
> 
> Попробуем поправить.

 

неа. вернее -- необязательно. скорее всего это он ищет строчку "Ошибка сегментирования". смотри выше.

----------

## fank

 *Quote:*   

> неа. вернее -- необязательно. скорее всего это он ищет строчку "Ошибка сегментирования". смотри выше.

 

 :Very Happy: 

нет, скорее всего это он сообщает, что в строке 117 враппера mozilla-launcher был вызван процесс с pid=25552 , который и вызвал сегфолт

и это mozbin судя по всему

надо просто посмотреть, что там вызывается в этой строке

а лучше вызвать strace -ff -o logfile.log

и потом в файлике 25552_logfile.log будет то, что надо

а если неохота раскиданные по разным файлам логи, то просто strace -f -o logfile.log

f - follow forks, то бишь отслеживать все дочерние и родительские вызовы

----------

## dmiceman

 *fank wrote:*   

>  *Quote:*   неа. вернее -- необязательно. скорее всего это он ищет строчку "Ошибка сегментирования". смотри выше. 
> 
> нет, скорее всего это он сообщает, что в строке 117 враппера mozilla-launcher был вызван процесс с pid=25552 , который и вызвал сегфолт
> 
> и это mozbin судя по всему
> ...

 

firefox-bin  :Smile: 

 *fank wrote:*   

> 
> 
> а лучше вызвать strace -ff -o logfile.log
> 
> и потом в файлике 25552_logfile.log будет то, что надо
> ...

 

 :Smile:  (см. выше)

----------

## Laitr Keiows

 *fank wrote:*   

> а лучше вызвать strace -ff -o logfile.log
> 
> и потом в файлике 25552_logfile.log будет то, что надо
> 
> а если неохота раскиданные по разным файлам логи, то просто strace -f -o logfile.log
> ...

 

Друзья, большое спасибо за советы.

Сегодня на день оставлял пересобираться world, к приходу собралось что-то около половины... И огнелис больше не падает!   :Very Happy: 

----------

