Проблема с zsh segfaulting: как продолжить оценку проблемы?

Я использую Linux arc 3.15.2-1-ARCH x86_64. Я не использую zsh (zsh-5.0.5-1) каждый день, иначе я бы заметил это segfaults , когда я запускаю его из bash cli:

 arch kernel: zsh[2187]: segfault at 8 ip 00007f3b49853083 sp 00007fff2ad39198 error 4 in libc-2.19.so[7f3b497d2000+1a4000] arch systemd-coredump[2188]: Process 2187 (zsh) dumped core. 

Теперь я помню, как он запускал его в какой-то момент и через скрипт конфигурации ( zsh /usr/share/zsh/functions/Newuser/zsh-newuser-install -f segfaults тоже сейчас). Поэтому я сделал следующее:

  • перезагружать
  • Поведение одинаково в X или консоли
  • Удалите с конфигурацией и очистите кеш пакетов, затем переустановите : pacman -Rns zsh; paccache -r; paccache -ruk0; pacman -S zsh pacman -Rns zsh; paccache -r; paccache -ruk0; pacman -S zsh pacman -Rns zsh; paccache -r; paccache -ruk0; pacman -S zsh .
  • Попробуйте скомпилировать, используя рецепт 5.0.5-1 и 5.0.4-1 : компилирует, затем продолжает проверять двоичный файл, выполняя его, что в обоих случаях segfaults, поэтому это прерывается.
  • Убедитесь, что в моем домашнем каталоге нет файла .zsh* – убедитесь, что у меня есть основные файлы .zsh* в моем домашнем каталоге.
  • Переименовано /etc/profile
  • Переименован /etc/zsh/zprofile
  • zsh-completions не установлено / не установлено

По иронии судьбы, zsh --version или --help работают и повторяют соответствующую информацию.

Так что может быть проблемой с моей установкой / средой здесь?


Примечание: выполнялся быстрый gdb, если это дает представление о том, что происходит:

 (gdb) run Starting program: /usr/bin/zsh warning: Could not load shared library symbols for linux-vdso.so.1. Do you need "set solib-search-path" or "set sysroot"? Program received signal SIGSEGV, Segmentation fault. 0x00007ffff713e083 in __strchr_sse2 () from /usr/lib/libc.so.6 (gdb) bt #0 0x00007ffff713e083 in __strchr_sse2 () from /usr/lib/libc.so.6 #1 0x000000000044f2e3 in ?? () #2 0x000000000044f7d4 in op () #3 0x000000000045003b in ?? () #4 0x00000000004505cd in ?? () #5 0x00000000004507dc in matheval () #6 0x0000000000450829 in mathevali () #7 0x00000000004602b0 in ?? () #8 0x00000000004624ab in assignsparam () #9 0x0000000000463636 in createparamtable () #10 0x000000000043f2b5 in setupvals () #11 0x0000000000440e14 in zsh_main () #12 0x00007ffff70dd000 in __libc_start_main () from /usr/lib/libc.so.6 #13 0x000000000040f7be in _start () 

Поведение можно воспроизвести с помощью:

 export HISTSIZE=V= 

По какой-то причине у меня это было в моем файле .bashrc . Скорее всего, у меня не было фокуса в окне, которое, как я думал, у меня было, в итоге добавило V =, не заметив этого, и небрежно сохранил файл; возможно, он был открыт в редакторе – они настроены на включение неограниченной истории . Но zsh также использует параметр. Так что bash не жаловался на ошибку, но zsh сделал … Быстрый просмотр вывода env для чего-то необычного должен быть в контрольном списке отладки.