Пример #1
0
            internal override void MethodLoaded(TargetAccess target, Method method)
            {
                TargetAddress address;

                if (Line != -1)
                {
                    if (method.HasLineNumbers)
                    {
                        address = method.LineNumberTable.Lookup(Line, Column);
                    }
                    else
                    {
                        address = TargetAddress.Null;
                    }
                }
                else if (method.HasMethodBounds)
                {
                    address = method.MethodStartAddress;
                }
                else
                {
                    address = method.StartAddress;
                }

                if (address.IsNull)
                {
                    return;
                }

                try {
                    target.InsertBreakpoint(this, address, method.Domain);
                } catch (TargetException ex) {
                    Report.Error("Can't insert breakpoint {0} at {1}: {2}",
                                 Breakpoint.Index, address, ex.Message);
                }
            }
Пример #2
0
		internal abstract void MethodLoaded (TargetAccess target, Method method);
Пример #3
0
        void method_from_jit_info(TargetAccess target, TargetAddress data,
					   MethodLoadedHandler handler)
        {
            int size = target.ReadInteger (data);
            TargetReader reader = new TargetReader (target.ReadMemory (data, size));

            reader.BinaryReader.ReadInt32 ();
            int count = reader.BinaryReader.ReadInt32 ();

            for (int i = 0; i < count; i++) {
                TargetAddress address = reader.ReadAddress ();
                Method method = read_range_entry (target, address);

                handler (target, method);
            }
        }
Пример #4
0
        internal void RegisterMethodLoadHandler(TargetAccess target, TargetAddress info, int index,
							 MethodLoadedHandler handler)
        {
            if (!info.IsNull)
                method_from_jit_info (target, info, handler);
            else
                method_load_handlers.Add (index, handler);
        }
Пример #5
0
            internal override void MethodLoaded(TargetAccess target, Method method)
            {
                TargetAddress address;
                if (Line != -1) {
                    if (method.HasLineNumbers)
                        address = method.LineNumberTable.Lookup (Line, Column);
                    else
                        address = TargetAddress.Null;
                } else if (method.HasMethodBounds)
                    address = method.MethodStartAddress;
                else
                    address = method.StartAddress;

                if (address.IsNull)
                    return;

                try {
                    target.InsertBreakpoint (this, address, method.Domain);
                } catch (TargetException ex) {
                    Report.Error ("Can't insert breakpoint {0} at {1}: {2}",
                              Breakpoint.Index, address, ex.Message);
                }
            }