Ubuntu 16.04에서 Python 2.7.15(gdb 8용)로 업그레이드

Ubuntu 16.04에서 Python 2.7.15(gdb 8용)로 업그레이드

버전 Ubuntu 16.04으로 실행 중입니다 . ( ) 로 업그레이드했을 때 gdb에서 다음과 같은 Python 오류가 발생하기 시작했습니다.gdb7.11.1-0ubuntu1~16.5g++g++-6.4Ubuntu 6.4.0-17ubuntu1~16.04

Python Exception <class 'TypeError'> expected string or bytes-like object: 
Error while executing Python code.

디버깅하는 동안 클래스나 STL 객체를 인쇄하려고 할 때마다. 만 gdb-8지원 한다고 판단하여 다음 지침에 따라 g++-6.4빌드를 시도했습니다.gdb-8.1http://www.linuxfromscratch.org/blfs/view/cvs/general/gdb.htmlgdb-8.1가 필요 하지만 Python을 업그레이드하지 않고 python 2.7.15설치하는 것만으로는 gdb-8.1(설치된 버전은 2.7.12) 인쇄 문제가 해결되지 않았습니다.

다음에서 허용되는 답변을 따릅니다.Ubuntu에 최신 Python 2.7.X 또는 3.X를 어떻게 설치합니까?python 2.7.15, ppa 에서 설치를 시도했습니다 deadsnakes. 그런데 신기하게도 python 2.7.xxppa 페이지에도 나와 있지 않습니다(https://launchpad.net/~deadsnakes/+archive/ubuntu/ppa2.3, 2.4, 2.5, 2.6), 모두 사용 가능 하더라도 . 그런 다음 다음 지침에 따라 수동으로 빌드해 보았습니다.http://www.linuxfromscratch.org/blfs/view/svn/general/python2.htmlpython 2.7.15, 그러나 별도의 위치( /usr/local/bin등)에 설치되어 대체되지 않는 것으로 나타났습니다 python 2.7.12. 따라서 gdb 인쇄 오류가 여전히 존재합니다.

설치된 것을 완전히 교체할 수 있는 방법이 있나요 python 2.7.12? 올바른 Python 바이너리 파일을 사용할 수 있더라도 dev 파일의 라이브러리 위치를 새 버전의 라이브러리 위치로 변경해야 하며 gdb-8.1해당 python-dev 파일에 대해 다시 빌드될 수 있습니다. 그렇지 않으면 다음과 같은 오류가 표시됩니다.

Traceback (most recent call last):
 File "/usr/share/gdb/python/gdb/__init__.py", line 144, in auto_load_packages
   __import__(modname)
 File "/usr/share/gdb/python/gdb/command/pretty_printers.py", line 19, in <module>
   import copy
 File "/usr/lib/python2.7/copy.py", line 52, in <module>
   import weakref
 File "/usr/lib/python2.7/weakref.py", line 14, in <module>
   from _weakref import (
ImportError: cannot import name _remove_dead_weakref

내가 시작할 때 gdb. 아무것도 도움이 되지 않으면 및 와 Ubuntu-18.04함께 제공되는 버전 으로 업그레이드해야 할 수도 있습니다(바람직하지 않음). 단, 실험용 버전은 저장소에서 사용할 수 있습니다.python 2.7.15rcgdb-7gdb-8

이와 유사한 질문은 구체적이지 않았으며 문제 해결에 도움이 되지 않았습니다.

관련 정보