Example #1
0
 def _load_memory_mappings(self):
   """ make the python objects"""
   self_mappings = []
   for _start, _end, permissions, offset, devices, inode, mmap_pathname in self.metalines:
     start,end = int(_start,16),int(_end,16 )
     offset = int(offset,16)
     inode = int(inode)
     #rebuild filename
     mmap_fname = "%s-%s" % (utils.formatAddress(start), utils.formatAddress(end))
     # get devices nums
     major_device, minor_device = devices.split(':')
     major_device = int(major_device,16)
     minor_device = int(minor_device,16)
     log.debug('Loading %s - %s'%(mmap_fname, mmap_pathname))
     # open the file in the archive
     try:
       mmap_content_file = self._protected_open_file(mmap_fname, mmap_pathname)
     except (IOError, KeyError), e:
       log.debug('Ignore absent file : %s'%(e))
       mmap = memory_mapping.MemoryMapping( start, end, permissions, offset, 
                               major_device, minor_device, inode,pathname=mmap_pathname)
       self_mappings.append(mmap)
       continue
     #except ValueError,e: # explicit non-loading
     #  log.debug('Ignore useless file : %s'%(e))
     #  mmap = memory_mapping.MemoryMapping(start, end, permissions, offset, 
     #                          major_device, minor_device, inode,pathname=mmap_pathname)
     #  self_mappings.append(mmap)
     #  continue
     except LazyLoadingException,e: 
       mmap = memory_mapping.FilenameBackedMemoryMapping(e._filename, start, end, permissions, offset, 
                               major_device, minor_device, inode,pathname=mmap_pathname)
       self_mappings.append(mmap)
       continue
Example #2
0
 def test_formatAddress(self):
     types.reload_ctypes(8, 8, 16)
     x = utils.formatAddress(0x12345678)
     self.assertEquals('0x0000000012345678', x)
     # 32b
     types.reload_ctypes(4, 4, 8)
     x = utils.formatAddress(0x12345678)
     self.assertEquals('0x12345678', x)
Example #3
0
 def __str__(self):
     text = ' '.join([utils.formatAddress(self.start), utils.formatAddress(self.end), self.permissions,
                      '0x%0.8x' % (self.offset), '%0.2x:%0.2x' % (self.major_device, self.minor_device), '%0.7d' % (self.inode), str(self.pathname)])
     return text