Skip to content
This repository was archived by the owner on Apr 17, 2026. It is now read-only.
This repository was archived by the owner on Apr 17, 2026. It is now read-only.

doc: Python modules are imported once and exist for the lifetime of your Ghidra process #103

@jonschz

Description

@jonschz

Hello,

sorry if this is a beginner question, but this looks like a bug to me.

Steps to reproduce:

  1. Create a new Python 3 Ghidra script, e.g. example.py.
  2. Create a folder next to that script (e.g. ghidra_utils) and create a file in there, e.g. debugging.py.
  3. Add the following contents:
[example.py]
from ghidra_util.debugging import demo_function
demo_function()

[debugging.py]
def demo_function():
    print("Hello there")
  1. Run the script in Ghidra.
  2. Invalidate the syntax in debugging.py, e.g. by adding invalid_syntax somewhere within the file.
  3. Run the script again.

Now the script runs as if debugging.py had not changed. More annoyingly, in order to fix bugs in submodules I need to restart Ghidra every time I make a change. I have observed a more expected behaviour before I installed Ghidrathon.

Setup: Windows 10, Ghidra 11.0.3, Ghidration 4.0.0, Python 3.12

Thanks in advance for looking at this!

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentationenhancementNew feature or request

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions