之前装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