我在运行 Elastic-beanstalk 容器中的 Python 的 EC2 机器上遇到了问题。为了调试问题,我需要将调试器附加到它并使用 Python 符号调试 Python。
当我将 GDB 附加到该进程时,出现以下错误:
Reading symbols from /usr/bin/python...(no debugging symbols found)...done.
Attaching to program: /usr/bin/python, process 31238
Reading symbols from /lib64/ld-linux-x86-64.so.2...Reading symbols
from /usr/lib/debug/lib64/ld-2.12.so.debug...done. done. Loaded
symbols for /lib64/ld-linux-x86-64.so.2 0x00007ffec3759a63 in ?? ()
Missing separate debuginfos, use: debuginfo-install
python-2.6-2.23.amzn1.noarch
但是,当我运行 debug-info install python-2.6-2.23.amzn1.noarch 时,它确实
[[email protected]]# debuginfo-install python-2.6-2.23.amzn1.noarch
Loaded plugins: auto-update-debuginfo, fastestmirror, priorities, update-motd
enabling amzn-main-debuginfo
enabling amzn-updates-debuginfo
Loading mirror speeds from cached hostfile
* amzn-main: packages.us-east-1.amazonaws.com
* amzn-main-debuginfo: packages.us-east-1.amazonaws.com
* amzn-updates: packages.us-east-1.amazonaws.com
* amzn-updates-debuginfo: packages.us-east-1.amazonaws.com
amzn-main | 2.1 kB 00:00
amzn-main-debuginfo | 1.9 kB 00:00
amzn-updates | 2.3 kB 00:00
amzn-updates-debuginfo | 1.9 kB 00:00
Checking for new repos for mirrors
Could not find debuginfo for main pkg: 1:python-2.6-2.23.amzn1.noarch
No debuginfo packages available to install
知道如何将这些符号放在盒子上吗?
答案1
根据亚马逊支持:
所有 Amazon Linux 映像都默认禁用 debuginfo 存储库,因为在生产中不需要它们。您可以通过两种方式启用它们:
编辑下面两个文件,并将debuginfo 部分更改为
enabled=0
:enabled=1
/etc/yum.repos.d/amzn-main.repo /etc/yum.repos.d/amzn-updates.repo
然后运行以下命令安装python 2.6的debuginfo:
sudo yum install python26-debuginfo
为了在需要安装的情况下临时启用相同的存储库,您可以自行运行以下命令:
sudo yum install --enablerepo=amzn-main-debuginfo,amzn-updates-debuginfo python26-debuginfo
为了亚马逊Linux 2而是:
/etc/yum.repos.d/amzn2-core.repo
安装之前按上述方法编辑- 或者以一个命令运行所有命令(以 root 身份):
yum install --enablerepo=amzn2-core-debuginfo python3-debuginfo