Atualize para python 2.7.15 (para gdb 8) no Ubuntu 16.04

Atualize para python 2.7.15 (para gdb 8) no Ubuntu 16.04

Estou executando Ubuntu 16.04com gdba versão 7.11.1-0ubuntu1~16.5. Quando atualizei g++para g++-6.4( Ubuntu 6.4.0-17ubuntu1~16.04), o gdb começou a apresentar erros de python como:

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

sempre que tento imprimir uma classe ou objeto STL durante a depuração. Eu determinei que apenas gdb-8suporta g++-6.4, então tentei construir gdb-8.1a partir das instruções emhttp://www.linuxfromscratch.org/blfs/view/cvs/general/gdb.html, mas gdb-8.1requer python 2.7.15, e apenas instalar gdb-8.1sem atualizar o python (a versão instalada é 2.7.12) não resolveu os problemas de impressão.

Seguindo a resposta aceita emComo instalo o Python 2.7.X ou 3.X mais recente no Ubuntu?, tentei instalar python 2.7.15a partir do deadsnakesppa. Mas, misteriosamente, python 2.7.xxnem está listado na página do ppa (https://launchpad.net/~deadsnakes/+archive/ubuntu/ppa), embora 2.3, 2.4, 2.5, 2.6estejam todos disponíveis. Então, tentei construí-lo manualmente com base nas instruções emhttp://www.linuxfromscratch.org/blfs/view/svn/general/python2.html, mas acontece que ele python 2.7.15é instalado em um local separado ( /usr/local/binetc.) e não substitui o python 2.7.12. Portanto, os erros de impressão do gdb ainda estão presentes.

Existe uma maneira de substituir completamente o instalado python 2.7.12? Mesmo que eu possa usar o arquivo binário python correto, terei que alterar o local da biblioteca dos arquivos dev para o da nova versão e posso ser reconstruído gdb-8.1com base nesses arquivos python-dev. Porque caso contrário, vejo erros como:

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

quando eu começo gdb. Se nada ajudar, talvez eu precise atualizar (o que não é desejável) para Ubuntu-18.04o qual vem com python 2.7.15rce gdb-7, embora gdb-8a versão experimental esteja disponível nos repositórios.

Perguntas semelhantes a esta não foram tão específicas e não me ajudaram a resolver o problema.

informação relacionada