Bug 1483323 part 3 - Fix fetching the scriptsourceobj in the gdb plugin r=tromey
authorJim Porter <jporter@mozilla.com>
Wed, 05 Sep 2018 18:51:48 +0000
changeset 435024 056faf94c597e119a73bd9c6496906c30ead4ff8
parent 435023 4fb8cbcedcb130e9f6126c7c222855191dc45150
child 435025 20c3fcfe5b487570f5e136cc6243aa1616581597
push id107530
push userapavel@mozilla.com
push dateThu, 06 Sep 2018 04:44:27 +0000
treeherdermozilla-inbound@5f5d7a3ce332 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewerstromey
bugs1483323, 1449051
milestone64.0a1
first release with
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Bug 1483323 part 3 - Fix fetching the scriptsourceobj in the gdb plugin r=tromey This accounts for changes to the layout of JS::Value from bug 1449051. Depends on D4608 Differential Revision: https://phabricator.services.mozilla.com/D4609
js/src/gdb/mozilla/unwind.py
--- a/js/src/gdb/mozilla/unwind.py
+++ b/js/src/gdb/mozilla/unwind.py
@@ -183,17 +183,17 @@ class JitFrameDecorator(FrameDecorator):
             tag == self.cache.CalleeToken_FunctionConstructing):
             fptr = gdb.Value(calleetoken).cast(self.cache.JSFunction)
             try:
                 atom = fptr['atom_']
                 if atom:
                     function = str(atom)
             except gdb.MemoryError:
                 function = "(could not read function name)"
-            script = fptr['u']['i']['s']['script_']
+            script = fptr['u']['scripted']['s']['script_']
         elif tag == self.cache.CalleeToken_Script:
             script = gdb.Value(calleetoken).cast(self.cache.JSScript)
         return {"function": function, "script": script}
 
     def function(self):
         if self.info["name"] is None:
             return FrameDecorator.function(self)
         name = self.info["name"]
@@ -221,17 +221,17 @@ class JitFrameDecorator(FrameDecorator):
                     # See bug 987069 and despair.  At least this
                     # approach won't give exceptions.
                     class_name = nativeobj['group_']['value']['clasp_']['name'].string(
                         "ISO-8859-1")
                     if class_name != "ScriptSource":
                         return FrameDecorator.filename(self)
                     scriptsourceobj = (
                         nativeobj + 1).cast(self.cache.HeapSlot)[self.cache.SOURCE_SLOT]
-                    scriptsource = scriptsourceobj['value']['data']['asBits'] << 1
+                    scriptsource = scriptsourceobj['value']['asBits_'] << 1
                     scriptsource = scriptsource.cast(self.cache.ScriptSource)
                     return scriptsource['filename_']['mTuple']['mFirstA'].string()
         return FrameDecorator.filename(self)
 
     def frame_args(self):
         this_frame = self.info["this_frame"]
         if this_frame is None:
             return FrameDecorator.frame_args(self)