使用python扩展gdb:ModuleNotFoundError

2024-09-30 06:29:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个python脚本,它扩展了gdb进行C调试。我运行gdb project_name/gdb/target.elf来启动gdb。我在Windows 10上使用cygwin终端。当我在gdb控制台中时,我键入source project_name/gdb/debug.py。在我的debug.py文件中,我有一个类StartupHandler:

class StartupHandler(gdb.Command):
    def __init__ (self):
        super (StartupHandler, self).__init__ ("startup-handler", gdb.COMMAND_NONE)
    def invoke (self, args):

正在使用代码StartupHandler()对其进行序列化。之后,我可以在gdb控制台中运行startup_handler args,该控制台调用invoke()方法,进行一些初始化。之后,我可以调试我的目标

现在,我想在另一个名为project_name/gdb/debug_data.py的文件中project_name/gdb/debug.py使用一些全局变量,并导入像from debug_data import var1这样的全局变量

通过从新文件导入全局变量,我得到了错误:

 File "c:\current\share\gdb/python\gdb\__init__.py", line 130, in _execute_file
    exec(compiled, globals, globals)
  File "project/gdb/debug.py", line 17, in <module>
    from debug_data import var1
ModuleNotFoundError: No module named 'debug_data'

当我在gdb控制台中键入source hymap/gdb/debug.py时。 有人知道为什么gdb中的python解释器抛出ModuleNotFoundError吗


Tags: 文件namepydebugselfprojectsourcedata

热门问题