使用GDB时因PYTHON环境变量导致的错误

本文讲述了在Ubuntu虚拟机中遇到Python3版本问题导致GDB功能异常,通过调整环境变量PYTHONHOME和PYTHONPATH,解决模块加载错误,确保Python3.6正常使用的过程。参考了多个资源并给出了详细步骤。
摘要由CSDN通过智能技术生成

之前装Python3版本可能把ubuntu虚拟机环境弄坏了,导致gdb功能异常报错

test@ubuntu:/usr/bin$ gdb
Could not find platform independent libraries <prefix>
Could not find platform dependent libraries <exec_prefix>
Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]
Fatal Python error: Py_Initialize: Unable to get the locale encoding
ModuleNotFoundError: No module named 'encodings'

通过命令readelf -d gdb查看依赖库

test@ubuntu:~/Share/LiteSDK/.objs/ubuntu/sdk/test$ readelf -d /usr/bin/gdb

Dynamic section at offset 0x72db58 contains 41 entries:
  Tag        Type                         Name/Value
 0x0000000000000001 (NEEDED)             Shared library: [libreadline.so.7]
 0x0000000000000001 (NEEDED)             Shared library: [libz.so.1]
 0x0000000000000001 (NEEDED)             Shared library: [libdl.so.2]
 0x0000000000000001 (NEEDED)             Shared library: [libncursesw.so.5]
 0x0000000000000001 (NEEDED)             Shared library: [libtinfo.so.5]
 0x0000000000000001 (NEEDED)             Shared library: [libpython3.6m.so.1.0]
 0x0000000000000001 (NEEDED)             Shared library: [libpthread.so.0]
 0x0000000000000001 (NEEDED)             Shared library: [libm.so.6]
 0x0000000000000001 (NEEDED)             Shared library: [libexpat.so.1]
 0x0000000000000001 (NEEDED)             Shared library: [liblzma.so.5]
 0x0000000000000001 (NEEDED)             Shared library: [libbabeltrace.so.1]
 0x0000000000000001 (NEEDED)             Shared library: [libbabeltrace-ctf.so.1]
 0x0000000000000001 (NEEDED)             Shared library: [libmpfr.so.6]
 0x0000000000000001 (NEEDED)             Shared library: [libc.so.6]
 0x0000000000000001 (NEEDED)             Shared library: [ld-linux-x86-64.so.2]
 0x000000000000000c (INIT)               0xa0858
 0x000000000000000d (FINI)               0x478bd8
 0x0000000000000019 (INIT_ARRAY)         0x8514a8
 0x000000000000001b (INIT_ARRAYSZ)       272 (bytes)
 0x000000000000001a (FINI_ARRAY)         0x8515b8
 0x000000000000001c (FINI_ARRAYSZ)       8 (bytes)
 0x000000006ffffef5 (GNU_HASH)           0x2d0
 0x0000000000000005 (STRTAB)             0xbee8
 0x0000000000000006 (SYMTAB)             0x2738
 0x000000000000000a (STRSZ)              29442 (bytes)
 0x000000000000000b (SYMENT)             24 (bytes)
 0x0000000000000015 (DEBUG)              0x0
 0x0000000000000003 (PLTGOT)             0x92de28
 0x0000000000000002 (PLTRELSZ)           13104 (bytes)
 0x0000000000000014 (PLTREL)             RELA
 0x0000000000000017 (JMPREL)             0x9d528
 0x0000000000000007 (RELA)               0x14050
 0x0000000000000008 (RELASZ)             562392 (bytes)
 0x0000000000000009 (RELAENT)            24 (bytes)
 0x000000000000001e (FLAGS)              BIND_NOW
 0x000000006ffffffb (FLAGS_1)            Flags: NOW PIE
 0x000000006ffffffe (VERNEED)            0x13e90
 0x000000006fffffff (VERNEEDNUM)         9
 0x000000006ffffff0 (VERSYM)             0x131ea
 0x000000006ffffff9 (RELACOUNT)          23347
 0x0000000000000000 (NULL)               0x0

经查询用的是Python3.6,但是我虚拟机自带默认的是Python2.7,以及额外安装了Python3.7

查找网上资料,尝试在/etc/profile下加环境变量

经过多次测试,添加如下环境变量

export PYTHONHOME=/usr/lib/python3.7/
export PYTHONPATH=/usr/lib/python3.7/
export PATH=$PATH:$PYTHONHOME:$PYTHONPATH

可正常启动gdb

参考资料1、 https://www.freesion.com/article/1596402482/

              2、https://www.cnblogs.com/hllnj2008/p/4129714.html

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值