gpt4 book ai didi

python - GDB pretty-print ImportError : No module named 'printers'

转载 作者:太空狗 更新时间:2023-10-29 21:34:21 28 4
gpt4 key购买 nike

我正在尝试添加 pretty printing对于 Ubuntu 14.04 上我的 GDB 中的 STL。有关工具的一些详细信息:

操作系统:Ubuntu 14.04

gdb 版本:7.7

python 版本:2.7.6

python3版本:3.4.0

但是在我完全按照说明进行设置之后。我仍然收到以下错误:

Traceback (most recent call last):
File "<string>", line 3, in <module>
File "/home/jerry/myLib/gdb_stl_support/python/libstdcxx/v6/__init__.py", line 19, in <module>
from printers import register_libstdcxx_printers
ImportError: No module named 'printers'
/home/jerry/.gdbinit:6: Error in sourced command file:
Error while executing Python code.
Reading symbols from main...done.

然后我仔细检查了我的 pretty-print 安装目录。在目录/home/jerry/myLib/gdb_STL_support/python/libstdcxx/v6/ 下,我可以清楚地看到我有 printers.py 文件。而且我还查看了 printers.py 的内容,我确定它也有 register_libstdcxx_printers 类。为什么 python 解释器仍然提示 printers 模块丢失?这对我来说真的很奇怪。

最佳答案

我刚刚自己尝试了一些东西,幸运的是,现在它可以正常工作了。至少它可以按预期打印出 map 和 vector 内容。这是我所做的:

既然它提示找不到 printer.py 模块,那么我想我应该告诉 python 解释器这个文件所在的位置。所以我首先将这一行添加到我的 ~/.gdbinit 中:sys.path.append("/home/jerry/myLib/gdb_STL_support/python/libstdcxx/v6")

(在行 sys.path.insert(0, '/home/jerry/myLib/gdb_STL_support/python') 之后)

然后再次运行gdb,出现如下错误:

Traceback (most recent call last):
File "<string>", line 5, in <module>
File "/home/jerry/myLib/gdb_stl_support/python/libstdcxx/v6/printers.py", line 1247, in register_libstdcxx_printers
gdb.printing.register_pretty_printer(obj, libstdcxx_printer)
File "/usr/share/gdb/python/gdb/printing.py", line 146, in register_pretty_printer
printer.name)
RuntimeError: pretty-printer already registered: libstdc++-v6
/home/jerry/.gdbinit:7: Error in sourced command file:
Error while executing Python code.

鉴于错误信息,我编辑了 ~/.gdbinit 文件并注释了行 register_libstdcxx_printers (None)

然后在运行 gdb 之后,它就可以工作了。

但我仍然想知道是否递归搜索了 sys.path 中的目录?我的意思是,在我看来,python 解释器应该像这样工作:一旦您将一个目录添加到 sys.path,那么该目录下的子目录也会搜索模块文件。

关于python - GDB pretty-print ImportError : No module named 'printers' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26205564/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com