Arch Linux의 Python 대화형 모드 "세그먼트 오류(코어 덤프)"

Arch Linux의 Python 대화형 모드 "세그먼트 오류(코어 덤프)"

Python 대화형 모드를 사용하려고 할 때마다 무엇을 입력하든 Arch Linux가 사용되고 Segmentation fault (core dumped)Python 인터프리터가 종료됩니다.

Python 스크립트를 실행하거나 다음을 수행하는 데 문제가 없습니다.

$ echo "print(1+1)" | python

그러나 대화형 모드로 들어가면 quit를 python사용 합니다.python2Segmentation fault (core dumped)

설치를 테스트합니다파이썬Python 인터프리터의 이 인터페이스에는 문제나 오류가 없습니다.

gdb프롬프트에 입력할 때 Enter를 두 번 눌러야 하고(Enter를 누르면 중지됨) 다음을 얻으려고 했습니다 .rungdb

Starting program: /usr/bin/python
Segmentation fault (core dumped)

그리고 gdb나가세요.

어쩌면 이 정보가 유용할 수도 있습니다:

$ which python
/usr/bin/python

$ which python2
/usr/bin/python2

$ python --version
Python 3.6.1

$ python2 --version
Python 2.7.13

$ uname -a
Linux archimiro 4.11.6-3-ARCH #1 SMP PREEMPT Thu Jun 22 12:21:46 CEST 2017 x86_64 GNU/Linux

답변1

다음과 같은stracePython을 실행하여 대화형 Python과 비대화형 Python의 차이점을 살펴보는 것이 좋습니다 .

대화형 Python을 사용하여 내 글을 읽는 ~/.inputrc방법독서선, 이것이 로 이어지는 것입니다 Segmentation fault (core dumped).

~/.inputrc(Ubuntu)의 내용을 맹목적으로 복사한 다른 컴퓨터(Ubuntu)의 파일이 있습니다 /usr/share/doc/bash/inputrc.arrows.

그 내용은 /usr/share/doc/bash/inputrc.arrows다음과 같습니다:

# This file controls the behaviour of line input editing for
# programs that use the Gnu Readline library.
#
# Arrow keys in keypad mode
#
"\C-[OD"        backward-char
"\C-[OC"        forward-char
"\C-[OA"        previous-history
"\C-[OB"        next-history
#
# Arrow keys in ANSI mode
#
"\C-[[D"        backward-char
"\C-[[C"        forward-char
"\C-[[A"        previous-history
"\C-[[B"        next-history
#
# Arrow keys in 8 bit keypad mode
#
"\C-M-OD"       backward-char
"\C-M-OC"       forward-char
"\C-M-OA"       previous-history
"\C-M-OB"       next-history
#
# Arrow keys in 8 bit ANSI mode
#
"\C-M-[D"       backward-char
"\C-M-[C"       forward-char
"\C-M-[A"       previous-history
"\C-M-[B"       next-history

문제의 구체적인 원인이므로 제거한 후에는 모든 것이 잘 작동 8 bit keypad mode합니다 .8 bit ANSI mode

감사해요트리거gdb이전에 이 도구를 사용해 본 적이 없기 때문에 지적해 주시고 인내심을 가져주셔서 감사합니다 . 그리고이것을 사용하라고 제안한 사람은 strace나에게도 새로운 사람입니다. 저는 단지 새로운 것을 배우기를 좋아하는 일반 사용자이기 때문에 디버깅을 어디서부터 시작해야 할지 모르겠습니다. 훌륭한 커뮤니티!

관련 정보