Exemplo n.º 1
0
        public BreakpointEventRequest CreateBreakpointRequest(Mono.Debugger.Soft.Location location)
        {
            var request = _vm.CreateBreakpointRequest(location);

            _breakpointEventRequests[location] = request;
            return(request);
        }
Exemplo n.º 2
0
		void ResolvePendingBreakpoint (Breakpoint bp, Location l)
		{
			BreakInfo bi = GetBreakInfo (bp);
			if (bi != null) {
				bi.Location = l;
				InsertBreakpoint (bp, bi);
				SetBreakEventStatus (bp, true, null);
			}
		}
Exemplo n.º 3
0
 private static ILocation SdbLocationFor(MDS.Location l)
 {
     return(Cache.Lookup <SdbLocation> (l));
 }
Exemplo n.º 4
0
		/*
		 * Set the location where execution will return when this thread is
		 * resumed.
		 * Throws:
		 * ArgumentException - if L doesn't refer to a location in the
		 * current method of this thread.
		 * NotSupportedException - if continuing at L is not supported
		 * for any other reason.
		 * Since protocol version 29.
		 */
		public void SetIP (Location loc) {
			if (loc == null)
				throw new ArgumentNullException ("loc");
			try {
				vm.conn.Thread_SetIP (id, loc.Method.Id, loc.ILOffset);
			} catch (CommandException ex) {
				if (ex.ErrorCode == ErrorCode.INVALID_ARGUMENT)
					throw new ArgumentException ("loc doesn't refer to a location in the current method of this thread.", "loc");
				else
					throw;
			}
		}
		void ResolvePendingBreakpoint (BreakInfo bi, Location l)
		{
			bi.Location = l;
			InsertBreakpoint ((Breakpoint) bi.BreakEvent, bi);
			bi.SetStatus (BreakEventStatus.Bound, null);
		}
		bool CheckBetterMatch (TypeMirror type, string file, int line, Location found)
		{
			if (type.Assembly == null)
				return false;
			
			string assemblyFileName;
			if (!assemblyPathMap.TryGetValue (type.Assembly.GetName ().FullName, out assemblyFileName))
				assemblyFileName = type.Assembly.Location;
			
			if (assemblyFileName == null)
				return false;
			
			string mdbFileName = assemblyFileName + ".mdb";
			int foundDelta = found.LineNumber - line;
			MonoSymbolFile mdb;
			int fileId = -1;
			
			try {
				if (!symbolFiles.TryGetValue (mdbFileName, out mdb)) {
					if (!File.Exists (mdbFileName))
						return false;
					
					mdb = MonoSymbolFile.ReadSymbolFile (mdbFileName);
					symbolFiles.Add (mdbFileName, mdb);
				}
				
				foreach (var src in mdb.Sources) {
					if (src.FileName == file) {
						fileId = src.Index;
						break;
					}
				}
				
				if (fileId == -1)
					return false;
				
				foreach (var method in mdb.Methods) {
					var table = method.GetLineNumberTable ();
					foreach (var entry in table.LineNumbers) {
						if (entry.File != fileId)
							continue;
						
						if (entry.Row >= line && (entry.Row - line) < foundDelta)
							return true;
					}
				}
			} catch {
			}
			
			return false;
		}
Exemplo n.º 7
0
 public SdbLocation(Location location)
     : base(location)
 {
 }