(self, slot, address)
| 1928 | return "%s %s" % (address, marker) |
| 1929 | |
| 1930 | def RelativeOffset(self, slot, address): |
| 1931 | if not self.reader.IsValidAlignedAddress(slot): return None |
| 1932 | if self.IsTaggedObjectAddress(address): |
| 1933 | address -= 1 |
| 1934 | if not self.reader.IsValidAlignedAddress(address): return None |
| 1935 | offset = (address - slot) / self.MachinePointerSize() |
| 1936 | |
| 1937 | lower_limit = -32 |
| 1938 | upper_limit = 128 |
| 1939 | if self.reader.IsExceptionStackAddress(address): |
| 1940 | upper_limit = 0xFFFFFF |
| 1941 | |
| 1942 | if offset < lower_limit or upper_limit < offset: return None |
| 1943 | target_address = self.reader.ReadUIntPtr(address) |
| 1944 | return "[%+02d]=%s %s" % (offset, self.reader.FormatIntPtr(target_address), |
| 1945 | self.AddressTypeMarker(target_address)) |
| 1946 | |
| 1947 | def FindObjectPointers(self, start=0, end=0): |
| 1948 | objects = set() |
no test coverage detected