summaryrefslogtreecommitdiffstats
path: root/js/src/gdb/mozilla/autoload.py
diff options
context:
space:
mode:
Diffstat (limited to 'js/src/gdb/mozilla/autoload.py')
-rw-r--r--js/src/gdb/mozilla/autoload.py33
1 files changed, 33 insertions, 0 deletions
diff --git a/js/src/gdb/mozilla/autoload.py b/js/src/gdb/mozilla/autoload.py
new file mode 100644
index 000000000..43cbcdf72
--- /dev/null
+++ b/js/src/gdb/mozilla/autoload.py
@@ -0,0 +1,33 @@
+# mozilla/autoload.py: Autoload SpiderMonkey pretty-printers.
+
+print("Loading JavaScript value pretty-printers; see js/src/gdb/README.")
+print("If they cause trouble, type: disable pretty-printer .* SpiderMonkey")
+
+import gdb.printing
+import mozilla.prettyprinters
+
+# Import the pretty-printer modules. As a side effect, loading these
+# modules registers their printers with mozilla.prettyprinters.
+import mozilla.GCCellPtr
+import mozilla.Interpreter
+import mozilla.IonGraph
+import mozilla.JSObject
+import mozilla.JSString
+import mozilla.JSSymbol
+import mozilla.Root
+import mozilla.jsid
+import mozilla.jsval
+import mozilla.unwind
+
+# The user may have personal pretty-printers. Get those, too, if they exist.
+try:
+ import my_mozilla_printers
+except ImportError:
+ pass
+
+# Register our pretty-printers with |objfile|.
+def register(objfile):
+ lookup = mozilla.prettyprinters.lookup_for_objfile(objfile)
+ if lookup:
+ gdb.printing.register_pretty_printer(objfile, lookup, replace=True)
+ mozilla.unwind.register_unwinder(objfile)