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
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)
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