public BreakAction(LocationCollection c)
 {
     m_where = c;
     Flash.Tools.Debugger.SourceFile generatedAux = m_where.first().File;             // force NullPointerException if l == null
     m_status = RESOLVED;
     init();
 }
示例#2
0
		/// <summary> Notification that a breakpoint has been removed (or disabled)
		/// at the CLI level and we may need to remove it at the session level
		/// </summary>
		internal virtual void  breakDisableRequest(LocationCollection col)
		{
			// now let's comb the table looking to see if this breakpoint should
			// be removed at the session level.  Use the first entry as a template
			// for which location we are talking about.
			int at = 0;
			bool hit = false;
			Location l = col.first();
			do 
			{
				at = breakpointIndexOf(l, at);
				if (at > - 1)
				{
					if (breakpointAt(at).Enabled)
						hit = true;
					else
						at++; // our location match is not enabled but let's continue after the hit
				}
			}
			while (at > - 1 && !hit);
			
			// no one matches, so let's remove it at the session level
			if (!hit)
			{
                foreach (Location loc in col)
                {
					try
					{
                        m_session.clearBreakpoint(loc);
					}
					catch (NoResponseException)
					{
					}
				}
			}
		}
示例#3
0
		public BreakAction(LocationCollection c)
		{
			m_where = c;
			Flash.Tools.Debugger.SourceFile generatedAux = m_where.first().File; // force NullPointerException if l == null
			m_status = RESOLVED;
			init();
		}
示例#4
0
		/// <summary> Enable a breakpoint using the SourceFile as a template
		/// for the source file in which the breakpoint should be 
		/// set.
		/// </summary>
		internal virtual LocationCollection enableBreak(SourceFile f, int line)
		{
			LocationCollection col = new LocationCollection();
			bool singleSwfBreakpoint = m_fileInfo.SwfFilterOn;
			SwfInfo swf = m_fileInfo.getSwfFilter();
			
			// If we have a swf filter enabled then we only want to
			// set a breakpoint in a specific swf not all of them
			try
			{
				if (singleSwfBreakpoint)
				{
					Location l = findAndEnableBreak(swf, f, line);
					col.add(l);
				}
				else
				{
					// walk all swfs looking to add this breakpoint
					SwfInfo[] swfs = m_fileInfo.Swfs;
					for (int i = 0; i < swfs.Length; i++)
					{
						swf = swfs[i];
						if (swf != null)
						{
							Location l = findAndEnableBreak(swf, f, line);
							if (l != null)
								col.add(l);
						}
					}
				}
			}
			catch (InProgressException)
			{
				if (Trace.error)
					Trace.trace(((swf == null)?"SWF ":swf.Url) + " still loading, breakpoint at " + f.Name + ":" + line + " not set"); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
			}
			return col;
		}