aboutsummaryrefslogtreecommitdiff
path: root/scripts/gdb/toolchain.py
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/gdb/toolchain.py')
-rw-r--r--scripts/gdb/toolchain.py14
1 files changed, 9 insertions, 5 deletions
diff --git a/scripts/gdb/toolchain.py b/scripts/gdb/toolchain.py
index bbb78102..b9cb90ad 100644
--- a/scripts/gdb/toolchain.py
+++ b/scripts/gdb/toolchain.py
@@ -1,6 +1,7 @@
import os
import subprocess
import sys
+import importlib.util
def setup_toolchain_debugging():
@@ -21,11 +22,14 @@ def setup_toolchain_debugging():
if python_dir:
sys.path.insert(0, python_dir)
- from libstdcxx.v6.printers import register_libstdcxx_printers
- from libstdcxx.v6.xmethods import register_libstdcxx_xmethods
-
- register_libstdcxx_printers(None)
- register_libstdcxx_xmethods(None)
+ if importlib.util.find_spec("libstdcxx.v6.printers") is None:
+ print(f"libstdcxx.v6.printers not found in {python_dir}, libstdc++ printers and XMethods will not be available.")
+ return
+
+ printers = importlib.import_module("libstdcxx.v6.printers")
+ xmethods = importlib.import_module("libstdcxx.v6.xmethods")
+ printers.register_libstdcxx_printers(None)
+ xmethods.register_libstdcxx_xmethods(None)
print(f"Loaded Printers & Xmethods from: {python_dir}")
except Exception as e: