Mono.Debugger.Backend.DwarfReader.DieLexicalBlock.IsInRange C# (CSharp) Method

IsInRange() public method

public IsInRange ( TargetAddress address ) : bool
address TargetAddress
return bool
            public bool IsInRange(TargetAddress address)
            {
                if (ranges_offset == null)
                    return true;

                DwarfBinaryReader reader = comp_unit.DwarfReader.DebugRangesReader;
                reader.Position = (long) ranges_offset;

                TargetAddress base_address = comp_unit.DieCompileUnit.BaseAddress;

                while (true) {
                    long start = reader.ReadAddress ();
                    long end = reader.ReadAddress ();

                    if (start == -1) {
                        Console.WriteLine ("BASE SELECTION: {0:x}", end);
                        base_address = comp_unit.DwarfReader.GetAddress (end);
                        continue;
                    }

                    if ((start == 0) && (end == 0))
                        break;

                    if ((address < base_address+start) || (address >= base_address+end))
                        continue;

                    return true;
                }

                return false;
            }