// Token: 0x0600019A RID: 410 RVA: 0x0000629F File Offset: 0x0000449F public SourceLocation(string file, int line, SourceRange range) { this.FileName = file; this.Line = line; this.SourceRange = new SourceRange?(range); }
// Token: 0x060000CE RID: 206 RVA: 0x00004100 File Offset: 0x00002300 protected bool DoBind() { if (this.Request.LocationType == enum_BP_LOCATION_TYPE.BPLT_CODE_FILE_LINE) { if ((this.Request.RequestInfo.dwFields & enum_BPREQI_FIELDS.BPREQI_BPLOCATION) == 0) { this.OnBreakpointError("Breakpoints of this type are not supported."); return(false); } IDebugDocumentPosition2 debugDocumentPosition = (IDebugDocumentPosition2)Marshal.GetObjectForIUnknown(this.Request.RequestInfo.bpLocation.unionmember2); Utils.RequireOk(debugDocumentPosition.GetFileName(out var file)); TEXT_POSITION[] array = new TEXT_POSITION[1]; TEXT_POSITION[] array2 = new TEXT_POSITION[1]; Utils.RequireOk(debugDocumentPosition.GetRange(array, array2)); SourceRange range = new SourceRange((int)(array[0].dwLine + 1U), (int)(array2[0].dwLine + 1U), (int)(array[0].dwColumn + 1U), (int)(array2[0].dwColumn + 1U)); SourceLocation location = new SourceLocation(file, (int)(array[0].dwLine + 1U), range); if ((this.Request.RequestInfo.dwFields & enum_BPREQI_FIELDS.BPREQI_PASSCOUNT) != 0) { this.HitCount = (int)this.Request.RequestInfo.bpPassCount.dwPassCount; switch (this.Request.RequestInfo.bpPassCount.stylePassCount) { case enum_BP_PASSCOUNT_STYLE.BP_PASSCOUNT_EQUAL: this.HitCountMode = HitCountMode.EqualTo; break; case enum_BP_PASSCOUNT_STYLE.BP_PASSCOUNT_EQUAL_OR_GREATER: this.HitCountMode = HitCountMode.GreaterThanOrEqualTo; break; case enum_BP_PASSCOUNT_STYLE.BP_PASSCOUNT_MOD: this.HitCountMode = HitCountMode.MultipleOf; break; default: this.HitCountMode = HitCountMode.None; break; } } if ((this.Request.RequestInfo.dwFields & enum_BPREQI_FIELDS.BPREQI_CONDITION) != 0) { this.ConditionExpression = this.Request.RequestInfo.bpCondition.bstrCondition; this.BreakIfConditionChanges = (this.Request.RequestInfo.bpCondition.styleCondition == enum_BP_COND_STYLE.BP_COND_WHEN_CHANGED); } this.Handle = this.Engine.BindBreakpoint(this, location); if (this.Handle == null) { return(false); } this.Handle.Enabled = this.is_enabled; return(true); } else { if (this.Request.LocationType == enum_BP_LOCATION_TYPE.BPLT_CODE_FUNC_OFFSET) { this.OnBreakpointError("Function breakpoints are not supported yet."); return(false); } this.OnBreakpointError("Breakpoints of this type are not supported."); return(false); } }