public DataSet(TempFileDatabase database, UnmanagedMemory view,
                TargetProcessPointer nativeStartPosition, TargetProcessPointer nativeRootFuncInfoStartPosition,
                bool isFirst)
     : base(nativeStartPosition, nativeRootFuncInfoStartPosition, view.Pointer, view.Length, isFirst, database.is64Bit)
 {
     this.database = database;
     this.view     = view;
 }
Ejemplo n.º 2
0
			public DataSet(TempFileDatabase database, UnmanagedMemory view,
			               TargetProcessPointer nativeStartPosition, TargetProcessPointer nativeRootFuncInfoStartPosition,
			               double cpuUsage, bool isFirst)
				: base(nativeStartPosition, nativeRootFuncInfoStartPosition, view.Pointer, view.Length, cpuUsage, isFirst, database.is64Bit)
			{
				this.database = database;
				this.view = view;
			}
Ejemplo n.º 3
0
			unsafe internal override void* TranslatePointer(TargetProcessPointer ptr)
			{
				if (ptr.To64().Pointer == 0)
					return null;
				unchecked {
					long spaceDiff = (long)(new IntPtr(view.Pointer)) - (long)NativeStartPosition.To64().Pointer;
					return new IntPtr((long)ptr.To64().Pointer + spaceDiff).ToPointer();
				}
			}
 internal UnmanagedProfilingDataSet(TargetProcessPointer nativeStartPosition, TargetProcessPointer nativeRootFuncInfoPosition,
                                    byte *startPtr, long length, bool isFirst, bool is64Bit)
 {
     this.nativeStartPosition        = nativeStartPosition;
     this.nativeRootFuncInfoPosition = nativeRootFuncInfoPosition;
     this.is64Bit  = is64Bit;
     this.isFirst  = isFirst;
     this.startPtr = new IntPtr(startPtr);
     this.length   = length;
 }
		internal UnmanagedProfilingDataSet(TargetProcessPointer nativeStartPosition, TargetProcessPointer nativeRootFuncInfoPosition,
		                                   byte *startPtr, long length, bool isFirst, bool is64Bit)
		{
			this.nativeStartPosition = nativeStartPosition;
			this.nativeRootFuncInfoPosition = nativeRootFuncInfoPosition;
			this.is64Bit = is64Bit;
			this.isFirst = isFirst;
			this.startPtr = new IntPtr(startPtr);
			this.length = length;
		}
 unsafe internal override void *TranslatePointer(TargetProcessPointer ptr)
 {
     if (ptr.To64().Pointer == 0)
     {
         return(null);
     }
     unchecked {
         long spaceDiff = (long)(new IntPtr(view.Pointer)) - (long)NativeStartPosition.To64().Pointer;
         return(new IntPtr((long)ptr.To64().Pointer + spaceDiff).ToPointer());
     }
 }
 unsafe void AddDataset(byte *ptr, long length, TargetProcessPointer nativeStartPosition, TargetProcessPointer nativeRootFuncInfoStartPosition, bool isFirst)
 {
     byte[] data = new byte[length];
     Marshal.Copy(new IntPtr(ptr), data, 0, (int)length);
     if (currentWrite != null)
     {
         file.EndWrite(currentWrite);
     }
     streamInfos.Add(new StreamInfo {
         NativeStartPosition = nativeStartPosition, NativeRootFuncInfoStartPosition = nativeRootFuncInfoStartPosition,
         StreamStartPosition = file.Length, StreamLength = length, IsFirst = isFirst
     });
     currentWrite = file.BeginWrite(data, 0, (int)length, null, null);
 }
 internal unsafe FunctionInfo *GetFunctionInfo(TargetProcessPointer ptr)
 {
     return((FunctionInfo *)TranslatePointer(ptr));
 }
 internal abstract unsafe void *TranslatePointer(TargetProcessPointer ptr);
Ejemplo n.º 10
0
		unsafe void AddDataset(byte *ptr, long length, TargetProcessPointer nativeStartPosition, TargetProcessPointer nativeRootFuncInfoStartPosition, double cpuUsage, bool isFirst)
		{
			byte[] data = new byte[length];
			Marshal.Copy(new IntPtr(ptr), data, 0, (int)length);
			if (this.currentWrite != null)
				this.file.EndWrite(this.currentWrite);
			this.streamInfos.Add(new StreamInfo { NativeStartPosition = nativeStartPosition, NativeRootFuncInfoStartPosition = nativeRootFuncInfoStartPosition,
			                     	StreamStartPosition = this.file.Length, StreamLength = length, CpuUsage = cpuUsage, IsFirst = isFirst });
			this.currentWrite = this.file.BeginWrite(data, 0, (int)length, null, null);
		}
		internal unsafe FunctionInfo* GetFunctionInfo(TargetProcessPointer ptr)
		{
			return (FunctionInfo*)this.TranslatePointer(ptr);
		}
		internal abstract unsafe void *TranslatePointer(TargetProcessPointer ptr);