如何在 amazon linux AMI 上为 GDB 安装 python 调试符号?

如何在 amazon linux AMI 上为 GDB 安装 python 调试符号?

我在运行 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 存储库,因为在生产中不需要它们。您可以通过两种方式启用它们:

  1. 编辑下面两个文件,并将debuginfo 部分更改为enabled=0enabled=1

    /etc/yum.repos.d/amzn-main.repo
    /etc/yum.repos.d/amzn-updates.repo
    

    然后运行以下命令安装python 2.6的debuginfo:

    sudo yum install python26-debuginfo
    
  2. 为了在需要安装的情况下临时启用相同的存储库,您可以自行运行以下命令:

    sudo yum install --enablerepo=amzn-main-debuginfo,amzn-updates-debuginfo python26-debuginfo
    

为了亚马逊Linux 2而是:

  1. /etc/yum.repos.d/amzn2-core.repo安装之前按上述方法编辑
  2. 或者以一个命令运行所有命令(以 root 身份):
    yum install --enablerepo=amzn2-core-debuginfo python3-debuginfo
    

相关内容