如何为gdb安装python debug-info?

时间:2015-04-16 02:18:31

标签: python linux debugging gdb rhel

我想使用gdb来调试python脚本。启动gdb后,输出:

[root@localhost scripts]# gdb python
GNU gdb (GDB) Red Hat Enterprise Linux 7.6.1-51.el7
Copyright (C) 2013 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 "x86_64-redhat-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /usr/bin/python2.7...Reading symbols from /usr/bin/python2.7...(no debugging symbols found)..
.done.
(no debugging symbols found)...done.
Missing separate debuginfos, use: debuginfo-install python-2.7.5-16.el7.x86_64

根据提示,我执行debuginfo-install python-2.7.5-16.el7.x86_64命令,输出为:

[root@localhost scripts]# debuginfo-install python-2.7.5-16.el7.x86_64
Loaded plugins: product-id
centos-extra                                                                               | 3.4 kB  00:00:00
rhel                                                                                       | 4.1 kB  00:00:00
centos-extra/primary_db                                                                    | 563 kB  00:00:00
Could not find debuginfo for main pkg: python-2.7.5-16.el7.x86_64
Could not find debuginfo pkg for dependency package glibc-2.17-55.el7.x86_64
Could not find debuginfo pkg for dependency package python-libs-2.7.5-16.el7.x86_64
No debuginfo packages available to install

P.S。:有2个yum数据源:RHEL 7.0 iso和CentOS链接:

[rhel]
name=rhel 7.0
baseurl=file:///mnt/iso
enabled=1
gpgcheck=0


[centos-extra]
name=centos extra
baseurl=http://cbs.centos.org/repos/virt7-testing/x86_64/os/
enabled=1
gpgcheck=0

如何安装python debug-info?

2 个答案:

答案 0 :(得分:3)

  

我想用gdb来调试python脚本

我相信调试信息用于调试Python解释器本身,而不是Python脚本。据我所知,gdb并不了解Python脚本。如果你开始gdb python,你就要求gdb调试python解释器。

要调试Python脚本,您可以使用pdb(而不是gdb),它在命令中有一些相似之处......

import pdb

....code...
pdb.set_trace()      # This introduces a breakpoint
... code...

编辑:所以问题是如何为Python安装debug-info。你确定要自己调试Python吗?

以下是一些想法:RHEL iso可能不是-devel信息的正确来源。我不认为原来的iso会提供你需要的信息。

我在几个地方找到了原始python包的-debuginfo包,但是有一个警告(例如。http://rpm.pbone.net/index.php3/stat/4/idpl/26126276/dir/redhat_7.x/com/python-debuginfo-2.7.5-16.el7.x86_64.rpm.html)说:

  

此套餐已过时。

http://buildlogs.centos.org/c7.00.04/python/20140617165351/2.7.5-16.el7.x86_64/上的调试信息的一个版本。自从我使用yum以来已经好几年了,但我相信您可以手动下载该软件包,并在下载的软件包上运行yum进行安装。根据原始问题中的消息,您还必须为glibc和python-libs安装debuginfo(或者可能是第一个)。类似于:yum --nogpgcheck localinstall packagename.arch.rpm

答案 1 :(得分:0)

关于如何在各种操作系统上安装python-debuginfo,有一些说明here

具体做法是:

  

Fedora的:

     
    

sudo yum install gdb python-debuginfo

  
     

Ubuntu的:

     
    

sudo apt-get install gdb python2.7-dbg

  
     

的Centos *:

     
    

sudo yum install yum-utils

         

sudo debuginfo-install glibc

         

sudo yum install gdb python-debuginfo