当我';我在使用Python的调试版本吗?
我的gdb版本是针对我的系统python链接的,但我目前正在使用python的一个特殊调试版本。因此,gdb无法正确启动,错误如下:当我';我在使用Python的调试版本吗?,python,gdb,Python,Gdb,我的gdb版本是针对我的系统python链接的,但我目前正在使用python的一个特殊调试版本。因此,gdb无法正确启动,错误如下: $gdb GDB:符号'PyPyZ0OrgStutt在共享对象中具有不同的大小,考虑重新链接 GDB:符号“PyBoLoLyType”在共享对象中具有不同的大小,考虑重新链接 GDB:符号'PyPyNoTimPrimeNeDebug结构'在共享对象中具有不同的大小,考虑重新链接 GDB:符号'PyFultAdType ''在共享对象中具有不同的大小,考虑重新链接
$gdb
GDB:符号'PyPyZ0OrgStutt在共享对象中具有不同的大小,考虑重新链接
GDB:符号“PyBoLoLyType”在共享对象中具有不同的大小,考虑重新链接
GDB:符号'PyPyNoTimPrimeNeDebug结构'在共享对象中具有不同的大小,考虑重新链接
GDB:符号'PyFultAdType ''在共享对象中具有不同的大小,考虑重新链接
GDB:符号'PyPytrutrueStutt在共享对象中有不同的大小,考虑重新链接
GDB:符号'PyPyNoEnStRe'在共享对象中有不同的大小,考虑重新链接
分段故障
…或者可能是这样的错误:
gdb:symbol查找错误:gdb:undefined symbol:PyUnicodeUCS4\u FromEncodedObject
即使在我的LD\u LIBRARY\u路径上存在Python的非系统版本,我如何使用gdb?我在以下内容中找到了答案:
解决方法是通过设置
LD_预加载,然后在程序执行之前取消设置。对于
例如,这将调试我的程序以进行调试:
LD_PRELOAD=/usr/lib/libpython2.7.so gdb-ex'set environ LD_PRELOAD'--指定要调试的程序
请注意,您需要将LD_PRELOAD设置为python的正确版本
该gdb是根据ldd$编译的(其中
gdb)从一个新鲜的环境
快速跟进:出于某种原因,我必须将模块python-2.7.6/Tools/gdb/libpython.py
(从下载的tarball)加载到我的sys.path
,或者像py bt
等特殊python命令。命令不可用。(未定义的命令:“py bt”。尝试“help”。
)可以在