| Index: tools/grokdump.py
 | 
| diff --git a/tools/grokdump.py b/tools/grokdump.py
 | 
| index 44f294d03db3f6084ca44e946fb1855a7a9e4e84..8986a91b5c318302c0f8ee8601d8919df675d9d6 100755
 | 
| --- a/tools/grokdump.py
 | 
| +++ b/tools/grokdump.py
 | 
| @@ -1621,7 +1621,7 @@ class KnownMap(HeapObject):
 | 
|  
 | 
|  COMMENT_RE = re.compile(r"^C (0x[0-9a-fA-F]+) (.*)$")
 | 
|  PAGEADDRESS_RE = re.compile(
 | 
| -    r"^P (mappage|oldpage) (0x[0-9a-fA-F]+)$")
 | 
| +    r"^P (mappage|pointerpage|datapage) (0x[0-9a-fA-F]+)$")
 | 
|  
 | 
|  
 | 
|  class InspectionInfo(object):
 | 
| @@ -1698,7 +1698,8 @@ class InspectionPadawan(object):
 | 
|      self.reader = reader
 | 
|      self.heap = heap
 | 
|      self.known_first_map_page = 0
 | 
| -    self.known_first_old_page = 0
 | 
| +    self.known_first_data_page = 0
 | 
| +    self.known_first_pointer_page = 0
 | 
|  
 | 
|    def __getattr__(self, name):
 | 
|      """An InspectionPadawan can be used instead of V8Heap, even though
 | 
| @@ -1714,11 +1715,13 @@ class InspectionPadawan(object):
 | 
|  
 | 
|    def IsInKnownOldSpace(self, tagged_address):
 | 
|      page_address = tagged_address & ~self.heap.PageAlignmentMask()
 | 
| -    return page_address == self.known_first_old_page
 | 
| +    return page_address in [self.known_first_data_page,
 | 
| +                            self.known_first_pointer_page]
 | 
|  
 | 
|    def ContainingKnownOldSpaceName(self, tagged_address):
 | 
|      page_address = tagged_address & ~self.heap.PageAlignmentMask()
 | 
| -    if page_address == self.known_first_old_page: return "OLD_SPACE"
 | 
| +    if page_address == self.known_first_data_page: return "OLD_DATA_SPACE"
 | 
| +    if page_address == self.known_first_pointer_page: return "OLD_POINTER_SPACE"
 | 
|      return None
 | 
|  
 | 
|    def SenseObject(self, tagged_address):
 | 
| @@ -1775,9 +1778,11 @@ class InspectionPadawan(object):
 | 
|  
 | 
|    def PrintKnowledge(self):
 | 
|      print "  known_first_map_page = %s\n"\
 | 
| -          "  known_first_old_page = %s" % (
 | 
| +          "  known_first_data_page = %s\n"\
 | 
| +          "  known_first_pointer_page = %s" % (
 | 
|            self.reader.FormatIntPtr(self.known_first_map_page),
 | 
| -          self.reader.FormatIntPtr(self.known_first_old_page))
 | 
| +          self.reader.FormatIntPtr(self.known_first_data_page),
 | 
| +          self.reader.FormatIntPtr(self.known_first_pointer_page))
 | 
|  
 | 
|  WEB_HEADER = """
 | 
|  <!DOCTYPE html>
 | 
| @@ -2119,10 +2124,12 @@ class InspectionWebFormatter(object):
 | 
|  
 | 
|      self.padawan = InspectionPadawan(self.reader, self.heap)
 | 
|      self.comments = InspectionInfo(minidump_name, self.reader)
 | 
| -    self.padawan.known_first_old_page = (
 | 
| -        self.comments.get_page_address("oldpage"))
 | 
| +    self.padawan.known_first_data_page = (
 | 
| +        self.comments.get_page_address("datapage"))
 | 
|      self.padawan.known_first_map_page = (
 | 
|          self.comments.get_page_address("mappage"))
 | 
| +    self.padawan.known_first_pointer_page = (
 | 
| +        self.comments.get_page_address("pointerpage"))
 | 
|  
 | 
|    def set_comment(self, straddress, comment):
 | 
|      try:
 | 
| @@ -2134,10 +2141,12 @@ class InspectionWebFormatter(object):
 | 
|    def set_page_address(self, kind, straddress):
 | 
|      try:
 | 
|        address = int(straddress, 0)
 | 
| -      if kind == "oldpage":
 | 
| -        self.padawan.known_first_old_page = address
 | 
| +      if kind == "datapage":
 | 
| +        self.padawan.known_first_data_page = address
 | 
|        elif kind == "mappage":
 | 
|          self.padawan.known_first_map_page = address
 | 
| +      elif kind == "pointerpage":
 | 
| +        self.padawan.known_first_pointer_page = address
 | 
|        self.comments.save_page_address(kind, address)
 | 
|      except ValueError:
 | 
|        print "Invalid address"
 | 
| @@ -2608,10 +2617,13 @@ class InspectionWebFormatter(object):
 | 
|        page_address = address & ~self.heap.PageAlignmentMask()
 | 
|  
 | 
|        f.write("Page info: \n")
 | 
| -      self.output_page_info(f, "old", self.padawan.known_first_old_page, \
 | 
| +      self.output_page_info(f, "data", self.padawan.known_first_data_page, \
 | 
|                              page_address)
 | 
|        self.output_page_info(f, "map", self.padawan.known_first_map_page, \
 | 
|                              page_address)
 | 
| +      self.output_page_info(f, "pointer", \
 | 
| +                            self.padawan.known_first_pointer_page, \
 | 
| +                            page_address)
 | 
|  
 | 
|        if not self.reader.IsValidAddress(address):
 | 
|          f.write("<h3>The contents at address %s not found in the dump.</h3>" % \
 | 
| @@ -2913,14 +2925,14 @@ class InspectionShell(cmd.Cmd):
 | 
|      """
 | 
|      self.padawan.PrintKnowledge()
 | 
|  
 | 
| -  def do_ko(self, address):
 | 
| +  def do_kd(self, address):
 | 
|      """
 | 
|       Teach V8 heap layout information to the inspector. Set the first
 | 
| -     old space page by passing any pointer into that page.
 | 
| +     data-space page by passing any pointer into that page.
 | 
|      """
 | 
|      address = int(address, 16)
 | 
|      page_address = address & ~self.heap.PageAlignmentMask()
 | 
| -    self.padawan.known_first_old_page = page_address
 | 
| +    self.padawan.known_first_data_page = page_address
 | 
|  
 | 
|    def do_km(self, address):
 | 
|      """
 | 
| @@ -2931,6 +2943,15 @@ class InspectionShell(cmd.Cmd):
 | 
|      page_address = address & ~self.heap.PageAlignmentMask()
 | 
|      self.padawan.known_first_map_page = page_address
 | 
|  
 | 
| +  def do_kp(self, address):
 | 
| +    """
 | 
| +     Teach V8 heap layout information to the inspector. Set the first
 | 
| +     pointer-space page by passing any pointer into that page.
 | 
| +    """
 | 
| +    address = int(address, 16)
 | 
| +    page_address = address & ~self.heap.PageAlignmentMask()
 | 
| +    self.padawan.known_first_pointer_page = page_address
 | 
| +
 | 
|    def do_list(self, smth):
 | 
|      """
 | 
|       List all available memory regions.
 | 
| 
 |