Exemple #1
0
    protected void BuildBackTraceNodes(StackBackTrace backtrace, ref MemTreeNode leaf, bool reverse)
    {
      var frames = backtrace.Frames;
      int start, end, dir;

      if (reverse)
      {
        start = 0;
        end = frames.Count - 1;
        dir = 1;
      }
      else
      {
        start = frames.Count - 1;
        end = 0;
        dir = -1;
      }

      for (int i = start; i != end; i += dir)
      {
        var frame = frames[i];
        var name = frame.Symbol;
        var filename = frame.FileName;
        var lineno = frame.LineNumber;

        if (SuppressedSymbols.Contains(name))
          continue;

        leaf = leaf.GetChild(name);
        leaf.Icon = "symbol";
        leaf.FileName = filename;
        leaf.LineNumber = lineno;
      }
    }
Exemple #2
0
        void IMemEventHandler.OnHeapFree(ulong ptr, StackBackTrace backtrace, double time)
        {
            ulong size;

            if (m_TrackedAddresses.TryGetValue(ptr, out size))
            {
                m_SearchResults.AddObject(new Result {
                    EventType = "Free", Address = ptr, Size = size, BackTrace = backtrace, Time = time
                });
                m_TrackedAddresses.Remove(ptr);
            }
        }
Exemple #3
0
        protected void BuildBackTraceNodes(StackBackTrace backtrace, ref MemTreeNode leaf, bool reverse)
        {
            var frames = backtrace.Frames;
            int start, end, dir;

            if (reverse)
            {
                start = 0;
                end   = frames.Count - 1;
                dir   = 1;
            }
            else
            {
                start = frames.Count - 1;
                end   = 0;
                dir   = -1;
            }

            for (int i = start; i != end; i += dir)
            {
                var frame    = frames[i];
                var name     = frame.Symbol;
                var filename = frame.FileName;
                var lineno   = frame.LineNumber;

                if (SuppressedSymbols.Contains(name))
                {
                    continue;
                }

                leaf            = leaf.GetChild(name);
                leaf.Icon       = "symbol";
                leaf.FileName   = filename;
                leaf.LineNumber = lineno;
            }
        }
Exemple #4
0
 void IMemEventHandler.OnHeapAllocate(ulong ptr, ulong size, int scope_type, string scope_data_str, StackBackTrace backtrace, double time)
 {
     if (ptr + size > m_Start && ptr < m_End)
     {
         m_SearchResults.AddObject(new Result {
             EventType = "Allocate", Address = ptr, Size = size, BackTrace = backtrace, Time = time
         });
         m_TrackedAddresses.Add(ptr, size);
     }
 }
 void IMemEventHandler.OnHeapFree(ulong ptr, StackBackTrace backtrace, double time)
 {
   ulong size;
   if (m_TrackedAddresses.TryGetValue(ptr, out size))
   {
     m_SearchResults.AddObject(new Result { EventType = "Free", Address = ptr, Size = size, BackTrace = backtrace, Time = time });
     m_TrackedAddresses.Remove(ptr);
   }
 }
 void IMemEventHandler.OnHeapAllocate(ulong ptr, ulong size, int scope_type, string scope_data_str, StackBackTrace backtrace, double time)
 {
   if (ptr + size > m_Start && ptr < m_End)
   {
     m_SearchResults.AddObject(new Result { EventType = "Allocate", Address = ptr, Size = size, BackTrace = backtrace, Time = time });
     m_TrackedAddresses.Add(ptr, size);
   }
 }