Моя проблема довольно просто: запуск «питон» команду (а не скрипт) на моей малиновой пи модели А + работает Raspbian свистящих дает сбой сегментации:на Raspberry Pi
[email protected] ~ $ python
Segmentation fault
Я нашел довольно много потоков, касающихся «сегментационной ошибки» в скриптах python (часто связанных с external C modules). Некоторые другие, более конкретно, о малине pi часто говорили о «ошибке сегментации» во время обновления apt-get с использованием модуля python (here или there).
Но это не отвечает на мою проблему.
Запуск его в GDB дал:
[email protected] ~ $ gdb python
GNU gdb (GDB) 7.4.1-debian
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "arm-linux-gnueabihf".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /usr/bin/python...BFD: /usr/bin/python: invalid string offset 4204450 >= 26547 for section `.dynstr'
BFD: /usr/bin/python: invalid string offset 34425 >= 26547 for section `.dynstr'
BFD: /usr/bin/python: invalid string offset 276647 >= 26547 for section `.dynstr'
...
(50 or so such lines later)
...
BFD: /usr/bin/python: invalid string offset 2340624285 >= 26547 for section `.dynstr'
(no debugging symbols found)...done.
(gdb) run
Starting program: /usr/bin/python
Program received signal SIGSEGV, Segmentation fault.
0xb6ff0124 in ??() from /lib/ld-linux-armhf.so.3
(gdb) backtrace
#0 0xb6ff0124 in ??() from /lib/ld-linux-armhf.so.3
#1 0xbefff358 in ??()
Cannot access memory at address 0x7a626964
Я нашел this related post, но нет четкого решения не дается.
Последний элемент: python3 работает отлично.
Может кто-нибудь здесь есть представление о том, что происходит?
Спасибо за вашу помощь ~
Вы попробовали запустить gdb? – CrazyCasta
Спасибо за ответ CrazyCasta. Извините, что вы подразумеваете под «run in gdb»? Разве я не говорю о «gdb python» в моем вопросе? Если нет, не могли бы вы быть более конкретными? – keuj6
Запуск 'gdb program_name' только запускает среду отладки, она фактически не пытается запустить программу. Все эти сообщения в основном говорят о том, что у него проблемы с чтением отладочных символов (что означает, что отладка будет сложнее читать, а не сама программа). Чтобы получить какую-либо полезную информацию из gdb о том, где происходит segfault, вам нужно запустить программу (набрав 'run' в приглашении' (gdb) 'и нажмите enter). – CrazyCasta