public BreakpointEventRequest CreateBreakpointRequest(Mono.Debugger.Soft.Location location) { var request = _vm.CreateBreakpointRequest(location); _breakpointEventRequests[location] = request; return(request); }
void ResolvePendingBreakpoint (Breakpoint bp, Location l) { BreakInfo bi = GetBreakInfo (bp); if (bi != null) { bi.Location = l; InsertBreakpoint (bp, bi); SetBreakEventStatus (bp, true, null); } }
private static ILocation SdbLocationFor(MDS.Location l) { return(Cache.Lookup <SdbLocation> (l)); }
/* * 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; }
public SdbLocation(Location location) : base(location) { }