コード例 #1
0
ファイル: ThreadPrinter.cs プロジェクト: formylover/dnSpy-1
        public void WriteCategory(ThreadVM vm)
        {
            switch (vm.Type)
            {
            case ThreadType.Unknown:
                output.Write(BoxedTextColor.Text, dnSpy_Debugger_Resources.ThreadType_Unknown);
                break;

            case ThreadType.Main:
                output.Write(BoxedTextColor.Text, dnSpy_Debugger_Resources.ThreadType_Main);
                break;

            case ThreadType.ThreadPool:
                output.Write(BoxedTextColor.Text, dnSpy_Debugger_Resources.ThreadType_ThreadPool);
                break;

            case ThreadType.Worker:
                output.Write(BoxedTextColor.Text, dnSpy_Debugger_Resources.ThreadType_Worker);
                break;

            case ThreadType.BGCOrFinalizer:
                output.Write(BoxedTextColor.Text, dnSpy_Debugger_Resources.ThreadType_BackgroundGC_or_Finalizer);
                output.Write(BoxedTextColor.Error, "???");
                break;

            case ThreadType.Terminated:
                output.Write(BoxedTextColor.Text, dnSpy_Debugger_Resources.ThreadType_Terminated);
                break;

            default:
                Debug.Fail(string.Format("Unknown thread type: {0}", vm.Type));
                goto case ThreadType.Unknown;
            }
        }
コード例 #2
0
ファイル: ThreadPrinter.cs プロジェクト: arkanoid1/dnSpy
		public void WriteCategory(ThreadVM vm) {
			switch (vm.Type) {
			case ThreadType.Unknown:
				output.Write("Unknown Thread", TextTokenType.Text);
				break;
			case ThreadType.Main:
				output.Write("Main Thread", TextTokenType.Text);
				break;
			case ThreadType.ThreadPool:
				output.Write("Thread Pool", TextTokenType.Text);
				break;
			case ThreadType.Worker:
				output.Write("Worker Thread", TextTokenType.Text);
				break;
			case ThreadType.BGCOrFinalizer:
				output.Write("BGC / Finalizer", TextTokenType.Text);
				output.Write("???", TextTokenType.Error);
				break;
			case ThreadType.Terminated:
				output.Write("Terminated Thread", TextTokenType.Text);
				break;
			default:
				Debug.Fail(string.Format("Unknown thread type: {0}", vm.Type));
				goto case ThreadType.Unknown;
			}
		}
コード例 #3
0
ファイル: ThreadPrinter.cs プロジェクト: GreenDamTan/dnSpy
		public void WriteCategory(ThreadVM vm) {
			switch (vm.Type) {
			case ThreadType.Unknown:
				output.Write(dnSpy_Debugger_Resources.ThreadType_Unknown, TextTokenKind.Text);
				break;
			case ThreadType.Main:
				output.Write(dnSpy_Debugger_Resources.ThreadType_Main, TextTokenKind.Text);
				break;
			case ThreadType.ThreadPool:
				output.Write(dnSpy_Debugger_Resources.ThreadType_ThreadPool, TextTokenKind.Text);
				break;
			case ThreadType.Worker:
				output.Write(dnSpy_Debugger_Resources.ThreadType_Worker, TextTokenKind.Text);
				break;
			case ThreadType.BGCOrFinalizer:
				output.Write(dnSpy_Debugger_Resources.ThreadType_BackgroundGC_or_Finalizer, TextTokenKind.Text);
				output.Write("???", TextTokenKind.Error);
				break;
			case ThreadType.Terminated:
				output.Write(dnSpy_Debugger_Resources.ThreadType_Terminated, TextTokenKind.Text);
				break;
			default:
				Debug.Fail(string.Format("Unknown thread type: {0}", vm.Type));
				goto case ThreadType.Unknown;
			}
		}
コード例 #4
0
ファイル: ThreadPrinter.cs プロジェクト: xornand/dnSpy
        public void WriteCategory(ThreadVM vm)
        {
            switch (vm.Type)
            {
            case ThreadType.Unknown:
                output.Write("Unknown Thread", TextTokenType.Text);
                break;

            case ThreadType.Main:
                output.Write("Main Thread", TextTokenType.Text);
                break;

            case ThreadType.ThreadPool:
                output.Write("Thread Pool", TextTokenType.Text);
                break;

            case ThreadType.Worker:
                output.Write("Worker Thread", TextTokenType.Text);
                break;

            case ThreadType.BGCOrFinalizer:
                output.Write("BGC / Finalizer", TextTokenType.Text);
                output.Write("???", TextTokenType.Error);
                break;

            case ThreadType.Terminated:
                output.Write("Terminated Thread", TextTokenType.Text);
                break;

            default:
                Debug.Fail(string.Format("Unknown thread type: {0}", vm.Type));
                goto case ThreadType.Unknown;
            }
        }
コード例 #5
0
ファイル: ThreadPrinter.cs プロジェクト: formylover/dnSpy-1
        public void WriteAffinityMask(ThreadVM vm)
        {
            ulong affMask = (ulong)vm.AffinityMask.ToInt64();
            bool  started = false;
            var   sb      = new StringBuilder();

            for (ulong bitMask = 1UL << 63; bitMask != 0; bitMask >>= 1)
            {
                if (!started && bitMask == 0x8000)
                {
                    started = true;
                }
                if ((affMask & bitMask) != 0)
                {
                    started = true;
                    sb.Append('1');
                }
                else
                {
                    if (started)
                    {
                        sb.Append('0');
                    }
                }
            }
            output.Write(BoxedTextColor.Number, sb.ToString());
        }
コード例 #6
0
ファイル: ThreadPrinter.cs プロジェクト: formylover/dnSpy-1
        public void WriteUserState(ThreadVM vm)
        {
            var  state     = vm.UserState;
            bool needComma = false;

            foreach (var t in UserStates)
            {
                if ((state & t.Item1) != 0)
                {
                    state &= ~t.Item1;
                    if (needComma)
                    {
                        output.WriteCommaSpace();
                    }
                    needComma = true;
                    output.Write(BoxedTextColor.EnumField, t.Item2);
                }
            }
            if (state != 0)
            {
                if (needComma)
                {
                    output.WriteCommaSpace();
                }
                output.Write(BoxedTextColor.Number, string.Format("0x{0:X}", (int)state));
            }
        }
コード例 #7
0
ファイル: ThreadPrinter.cs プロジェクト: arkanoid1/dnSpy
		public void WriteManagedId(ThreadVM vm) {
			var id = vm.ManagedId;
			if (id != null)
				WriteInt32(id.Value);
			else {
				output.Write("???", TextTokenType.Error);
				WriteInt32(vm.Thread.IncrementedId + 1);
			}
		}
コード例 #8
0
 internal static void GoTo(ThreadVM vm, bool newTab)
 {
     if (vm == null)
     {
         return;
     }
     StackFrameManager.Instance.SelectedThread = vm.Thread;
     FrameUtils.GoTo(vm.Thread.AllFrames.FirstOrDefault(f => f.IsILFrame), newTab);
 }
コード例 #9
0
ファイル: ThreadPrinter.cs プロジェクト: GreenDamTan/dnSpy
		public void WriteManagedId(ThreadVM vm) {
			var id = vm.ManagedId;
			if (id != null)
				WriteInt32(id.Value);
			else {
				output.Write("???", TextTokenKind.Error);
				WriteInt32(vm.Thread.UniqueIdProcess + 1);
			}
		}
コード例 #10
0
ファイル: ThreadPrinter.cs プロジェクト: manojdjoshi/dnSpy
		public void WriteManagedId(ThreadVM vm) {
			var id = vm.ManagedId;
			if (id != null)
				WriteInt32(id.Value);
			else {
				output.Write(BoxedTextColor.Error, "???");
				WriteInt32(vm.Thread.UniqueIdProcess + 1);
			}
		}
コード例 #11
0
        public void WriteManagedId(ThreadVM vm)
        {
            var id = vm.ManagedId;

            if (id != null)
            {
                WriteInt32(id.Value);
            }
            else
            {
                output.Write("???", TextTokenKind.Error);
                WriteInt32(vm.Thread.UniqueIdProcess + 1);
            }
        }
コード例 #12
0
ファイル: ThreadPrinter.cs プロジェクト: xornand/dnSpy
        public void WriteManagedId(ThreadVM vm)
        {
            var id = vm.ManagedId;

            if (id != null)
            {
                WriteInt32(id.Value);
            }
            else
            {
                output.Write("???", TextTokenType.Error);
                WriteInt32(vm.Thread.IncrementedId + 1);
            }
        }
コード例 #13
0
ファイル: ThreadPrinter.cs プロジェクト: formylover/dnSpy-1
        public void WriteManagedId(ThreadVM vm)
        {
            var id = vm.ManagedId;

            if (id != null)
            {
                WriteInt32(id.Value);
            }
            else
            {
                output.Write(BoxedTextColor.Error, "???");
                WriteInt32(vm.Thread.UniqueIdProcess + 1);
            }
        }
コード例 #14
0
        public void WriteName(ThreadVM vm)
        {
            var name = vm.Name;

            if (vm.UnknownName)
            {
                output.Write("???", TextTokenKind.Error);
            }
            else if (name == null)
            {
                output.Write(dnSpy_Debugger_Resources.Thread_NoName, TextTokenKind.Text);
            }
            else
            {
                output.Write(DebugOutputUtils.FilterName(name, MAX_THREAD_NAME), TextTokenKind.String);
            }
        }
コード例 #15
0
        public void WritePriority(ThreadVM vm)
        {
            switch (vm.Priority)
            {
            case ThreadPriority.Lowest:                     output.Write(dnSpy_Debugger_Resources.Thread_Priority_Lowest, TextTokenKind.EnumField); break;

            case ThreadPriority.BelowNormal:        output.Write(dnSpy_Debugger_Resources.Thread_Priority_BelowNormal, TextTokenKind.EnumField); break;

            case ThreadPriority.Normal:                     output.Write(dnSpy_Debugger_Resources.Thread_Priority_Normal, TextTokenKind.EnumField); break;

            case ThreadPriority.AboveNormal:        output.Write(dnSpy_Debugger_Resources.Thread_Priority_AboveNormal, TextTokenKind.EnumField); break;

            case ThreadPriority.Highest:            output.Write(dnSpy_Debugger_Resources.Thread_Priority_Highest, TextTokenKind.EnumField); break;

            default:                                                        output.Write(string.Format("???({0})", (int)vm.Priority), TextTokenKind.Error); break;
            }
        }
コード例 #16
0
ファイル: ThreadPrinter.cs プロジェクト: xornand/dnSpy
        public void WriteName(ThreadVM vm)
        {
            var name = vm.Name;

            if (vm.UnknownName)
            {
                output.Write("???", TextTokenType.Error);
            }
            else if (name == null)
            {
                output.Write("<No Name>", TextTokenType.Text);
            }
            else
            {
                output.Write(DebugOutputUtils.FilterName(name, MAX_THREAD_NAME), TextTokenType.String);
            }
        }
コード例 #17
0
ファイル: ThreadPrinter.cs プロジェクト: xornand/dnSpy
        public void WritePriority(ThreadVM vm)
        {
            switch (vm.Priority)
            {
            case ThreadPriority.Lowest:                     output.Write("Lowest", TextTokenType.EnumField); break;

            case ThreadPriority.BelowNormal:        output.Write("Below Normal", TextTokenType.EnumField); break;

            case ThreadPriority.Normal:                     output.Write("Normal", TextTokenType.EnumField); break;

            case ThreadPriority.AboveNormal:        output.Write("Above Normal", TextTokenType.EnumField); break;

            case ThreadPriority.Highest:            output.Write("Highest", TextTokenType.EnumField); break;

            default:                                                        output.Write(string.Format("???({0})", (int)vm.Priority), TextTokenType.Error); break;
            }
        }
コード例 #18
0
ファイル: ThreadPrinter.cs プロジェクト: formylover/dnSpy-1
        public void WritePriority(ThreadVM vm)
        {
            switch (vm.Priority)
            {
            case ThreadPriority.Lowest:                     output.Write(BoxedTextColor.EnumField, dnSpy_Debugger_Resources.Thread_Priority_Lowest); break;

            case ThreadPriority.BelowNormal:        output.Write(BoxedTextColor.EnumField, dnSpy_Debugger_Resources.Thread_Priority_BelowNormal); break;

            case ThreadPriority.Normal:                     output.Write(BoxedTextColor.EnumField, dnSpy_Debugger_Resources.Thread_Priority_Normal); break;

            case ThreadPriority.AboveNormal:        output.Write(BoxedTextColor.EnumField, dnSpy_Debugger_Resources.Thread_Priority_AboveNormal); break;

            case ThreadPriority.Highest:            output.Write(BoxedTextColor.EnumField, dnSpy_Debugger_Resources.Thread_Priority_Highest); break;

            default:                                                        output.Write(BoxedTextColor.Error, string.Format("???({0})", (int)vm.Priority)); break;
            }
        }
コード例 #19
0
ファイル: ThreadPrinter.cs プロジェクト: formylover/dnSpy-1
        public void WriteName(ThreadVM vm)
        {
            var name = vm.Name;

            if (vm.UnknownName)
            {
                output.Write(BoxedTextColor.Error, "???");
            }
            else if (name == null)
            {
                output.Write(BoxedTextColor.Text, dnSpy_Debugger_Resources.Thread_NoName);
            }
            else
            {
                output.Write(BoxedTextColor.String, DebugOutputUtils.FilterName(name, MAX_THREAD_NAME));
            }
        }
コード例 #20
0
ファイル: ThreadPrinter.cs プロジェクト: xornand/dnSpy
        public void WriteLocation(ThreadVM vm)
        {
            var frame = vm.Thread.CorThread.AllFrames.FirstOrDefault();

            if (frame == null)
            {
                output.Write("<not available>", TextTokenType.Text);
            }
            else
            {
                var flags = TypePrinterFlags.Default | TypePrinterFlags.ShowIP;
                if (!useHex)
                {
                    flags |= TypePrinterFlags.UseDecimal;
                }
                frame.Write(new OutputConverter(output), flags);
            }
        }
コード例 #21
0
ファイル: ThreadPrinter.cs プロジェクト: formylover/dnSpy-1
        public void WriteLocation(ThreadVM vm)
        {
            var frame = vm.Thread.CorThread.AllFrames.FirstOrDefault();

            if (frame == null)
            {
                output.Write(BoxedTextColor.Text, dnSpy_Debugger_Resources.Thread_LocationNotAvailable);
            }
            else
            {
                var flags = TypePrinterFlags.Default | TypePrinterFlags.ShowIP;
                if (!useHex)
                {
                    flags |= TypePrinterFlags.UseDecimal;
                }
                frame.Write(new OutputConverter(output), flags);
            }
        }
コード例 #22
0
ファイル: ThreadsVM.cs プロジェクト: Rahul-Sindhu/dnSpy
        void InitializeThreads()
        {
            if (!IsEnabled || theDebugger.ProcessState != DebuggerProcessState.Paused)
            {
                Collection.Clear();
                return;
            }

            var debugger      = theDebugger.Debugger;
            var threadsInColl = new HashSet <DnThread>(Collection.Select(a => a.Thread));
            var allThreads    = new HashSet <DnThread>(debugger.Processes.SelectMany(p => p.Threads));

            foreach (var thread in allThreads)
            {
                if (threadsInColl.Contains(thread))
                {
                    continue;
                }
                var vm = new ThreadVM(thread, threadContext);
                Collection.Add(vm);
            }

            for (int i = Collection.Count - 1; i >= 0; i--)
            {
                if (!allThreads.Contains(Collection[i].Thread))
                {
                    Collection.RemoveAt(i);
                }
            }

            foreach (var vm in Collection)
            {
                vm.IsCurrent = stackFrameService.SelectedThread == vm.Thread;
                vm.UpdateFields();
            }
        }
コード例 #23
0
ファイル: ThreadPrinter.cs プロジェクト: GreenDamTan/dnSpy
		public void WriteCurrent(ThreadVM vm) {
			output.Write(vm.IsCurrent ? ">" : " ", TextTokenKind.Text);
		}
コード例 #24
0
ファイル: ThreadsVM.cs プロジェクト: LiangChow/dnSpy
        void InitializeThreads()
        {
            if (!IsEnabled || DebugManager.Instance.ProcessState != DebuggerProcessState.Stopped) {
                Collection.Clear();
                return;
            }

            var debugger = DebugManager.Instance.Debugger;
            var threadsInColl = new HashSet<DnThread>(Collection.Select(a => a.Thread));
            var allThreads = new HashSet<DnThread>(debugger.Processes.SelectMany(p => p.Threads));

            foreach (var thread in allThreads) {
                if (threadsInColl.Contains(thread))
                    continue;
                var vm = new ThreadVM(thread);
                Collection.Add(vm);
            }

            for (int i = Collection.Count - 1; i >= 0; i--) {
                if (!allThreads.Contains(Collection[i].Thread))
                    Collection.RemoveAt(i);
            }

            foreach (var vm in Collection) {
                vm.IsCurrent = StackFrameManager.Instance.SelectedThread == vm.Thread;
                vm.UpdateFields();
            }
        }
コード例 #25
0
ファイル: ThreadPrinter.cs プロジェクト: formylover/dnSpy-1
 public void WriteAppDomain(ThreadVM vm) => output.Write(vm.AppDomain, dbg);
コード例 #26
0
ファイル: ThreadPrinter.cs プロジェクト: manojdjoshi/dnSpy
		public void WriteCurrent(ThreadVM vm) => output.Write(BoxedTextColor.Text, vm.IsCurrent ? ">" : " ");
コード例 #27
0
ファイル: ThreadPrinter.cs プロジェクト: formylover/dnSpy-1
 public void WriteCurrent(ThreadVM vm) => output.Write(BoxedTextColor.Text, vm.IsCurrent ? ">" : " ");
コード例 #28
0
ファイル: ThreadPrinter.cs プロジェクト: formylover/dnSpy-1
 public void WriteSuspended(ThreadVM vm) => output.WriteYesNo(vm.IsSuspended);
コード例 #29
0
ファイル: ThreadPrinter.cs プロジェクト: GreenDamTan/dnSpy
		public void WriteProcess(ThreadVM vm) {
			output.Write(vm.Thread.Process, useHex);
		}
コード例 #30
0
ファイル: ThreadPrinter.cs プロジェクト: arkanoid1/dnSpy
		public void WritePriority(ThreadVM vm) {
			switch (vm.Priority) {
			case ThreadPriority.Lowest:			output.Write("Lowest", TextTokenType.EnumField); break;
			case ThreadPriority.BelowNormal:	output.Write("Below Normal", TextTokenType.EnumField); break;
			case ThreadPriority.Normal:			output.Write("Normal", TextTokenType.EnumField); break;
			case ThreadPriority.AboveNormal:	output.Write("Above Normal", TextTokenType.EnumField); break;
			case ThreadPriority.Highest:		output.Write("Highest", TextTokenType.EnumField); break;
			default:							output.Write(string.Format("???({0})", (int)vm.Priority), TextTokenType.Error); break;
			}
		}
コード例 #31
0
ファイル: ThreadPrinter.cs プロジェクト: GreenDamTan/dnSpy
		public void WriteAppDomain(ThreadVM vm) {
			output.Write(vm.AppDomain, dbg);
		}
コード例 #32
0
 public void WriteCurrent(ThreadVM vm)
 {
     output.Write(vm.IsCurrent ? ">" : " ", TextTokenKind.Text);
 }
コード例 #33
0
ファイル: ThreadPrinter.cs プロジェクト: GreenDamTan/dnSpy
		public void WriteUserState(ThreadVM vm) {
			var state = vm.UserState;
			bool needComma = false;
			foreach (var t in UserStates) {
				if ((state & t.Item1) != 0) {
					state &= ~t.Item1;
					if (needComma)
						output.WriteCommaSpace();
					needComma = true;
					output.Write(t.Item2, TextTokenKind.EnumField);
				}
			}
			if (state != 0) {
				if (needComma)
					output.WriteCommaSpace();
				output.Write(string.Format("0x{0:X}", (int)state), TextTokenKind.Number);
			}
		}
コード例 #34
0
ファイル: ThreadPrinter.cs プロジェクト: manojdjoshi/dnSpy
		public void WriteAffinityMask(ThreadVM vm) {
			ulong affMask = (ulong)vm.AffinityMask.ToInt64();
			if (IntPtr.Size == 4)
				affMask &= uint.MaxValue;
			bool started = false;
			var sb = new StringBuilder();
			for (ulong bitMask = 1UL << 63; bitMask != 0; bitMask >>= 1) {
				if (!started && bitMask == 0x8000)
					started = true;
				if ((affMask & bitMask) != 0) {
					started = true;
					sb.Append('1');
				}
				else {
					if (started)
						sb.Append('0');
				}
			}
			output.Write(BoxedTextColor.Number, sb.ToString());
		}
コード例 #35
0
ファイル: Commands.cs プロジェクト: imanadib/dnSpy
 internal static void GoTo(IFileTabManager fileTabManager, IModuleLoader moduleLoader, IStackFrameManager stackFrameManager, ThreadVM vm, bool newTab)
 {
     if (vm == null)
     {
         return;
     }
     stackFrameManager.SelectedThread = vm.Thread;
     FrameUtils.GoTo(fileTabManager, moduleLoader, vm.Thread.AllFrames.FirstOrDefault(f => f.IsILFrame), newTab);
 }
コード例 #36
0
ファイル: ThreadPrinter.cs プロジェクト: arkanoid1/dnSpy
		public void WriteName(ThreadVM vm) {
			var name = vm.Name;
			if (vm.UnknownName)
				output.Write("???", TextTokenType.Error);
			else if (name == null)
				output.Write("<No Name>", TextTokenType.Text);
			else
				output.Write(DebugOutputUtils.FilterName(name, MAX_THREAD_NAME), TextTokenType.String);
		}
コード例 #37
0
ファイル: ThreadPrinter.cs プロジェクト: GreenDamTan/dnSpy
		public void WriteSuspended(ThreadVM vm) {
			output.WriteYesNo(vm.IsSuspended);
		}
コード例 #38
0
ファイル: ThreadPrinter.cs プロジェクト: arkanoid1/dnSpy
		public void WriteCurrent(ThreadVM vm) {
			output.Write(vm.IsCurrent ? '>' : ' ', TextTokenType.Text);
		}
コード例 #39
0
ファイル: ThreadPrinter.cs プロジェクト: GreenDamTan/dnSpy
		public void WriteAffinityMask(ThreadVM vm) {
			ulong affMask = (ulong)vm.AffinityMask.ToInt64();
			bool started = false;
			var sb = new StringBuilder();
			for (ulong bitMask = 1UL << 63; bitMask != 0; bitMask >>= 1) {
				if (!started && bitMask == 0x8000)
					started = true;
				if ((affMask & bitMask) != 0) {
					started = true;
					sb.Append('1');
				}
				else {
					if (started)
						sb.Append('0');
				}
			}
			output.Write(sb.ToString(), TextTokenKind.Number);
		}
コード例 #40
0
ファイル: ThreadPrinter.cs プロジェクト: arkanoid1/dnSpy
		public void WriteLocation(ThreadVM vm) {
			var frame = vm.Thread.CorThread.AllFrames.FirstOrDefault();
			if (frame == null)
				output.Write("<not available>", TextTokenType.Text);
			else {
				var flags = TypePrinterFlags.Default | TypePrinterFlags.ShowIP;
				if (!useHex)
					flags |= TypePrinterFlags.UseDecimal;
				frame.Write(new OutputConverter(output), flags);
			}
		}
コード例 #41
0
ファイル: ThreadPrinter.cs プロジェクト: xornand/dnSpy
 public void WriteAppDomain(ThreadVM vm)
 {
     output.Write(vm.AppDomain);
 }
コード例 #42
0
ファイル: ThreadPrinter.cs プロジェクト: formylover/dnSpy-1
 public void WriteId(ThreadVM vm) => WriteInt32(vm.Id);
コード例 #43
0
ファイル: ThreadPrinter.cs プロジェクト: xornand/dnSpy
 public void WriteCurrent(ThreadVM vm)
 {
     output.Write(vm.IsCurrent ? '>' : ' ', TextTokenType.Text);
 }
コード例 #44
0
ファイル: ThreadPrinter.cs プロジェクト: formylover/dnSpy-1
 public void WriteProcess(ThreadVM vm) => output.Write(vm.Thread.Process, useHex);
コード例 #45
0
ファイル: ThreadPrinter.cs プロジェクト: GreenDamTan/dnSpy
		public void WritePriority(ThreadVM vm) {
			switch (vm.Priority) {
			case ThreadPriority.Lowest:			output.Write(dnSpy_Debugger_Resources.Thread_Priority_Lowest, TextTokenKind.EnumField); break;
			case ThreadPriority.BelowNormal:	output.Write(dnSpy_Debugger_Resources.Thread_Priority_BelowNormal, TextTokenKind.EnumField); break;
			case ThreadPriority.Normal:			output.Write(dnSpy_Debugger_Resources.Thread_Priority_Normal, TextTokenKind.EnumField); break;
			case ThreadPriority.AboveNormal:	output.Write(dnSpy_Debugger_Resources.Thread_Priority_AboveNormal, TextTokenKind.EnumField); break;
			case ThreadPriority.Highest:		output.Write(dnSpy_Debugger_Resources.Thread_Priority_Highest, TextTokenKind.EnumField); break;
			default:							output.Write(string.Format("???({0})", (int)vm.Priority), TextTokenKind.Error); break;
			}
		}
コード例 #46
0
ファイル: ThreadPrinter.cs プロジェクト: manojdjoshi/dnSpy
		public void WriteName(ThreadVM vm) {
			var name = vm.Name;
			if (vm.UnknownName)
				output.Write(BoxedTextColor.Error, "???");
			else if (name == null)
				output.Write(BoxedTextColor.Text, dnSpy_Debugger_Resources.Thread_NoName);
			else
				output.Write(BoxedTextColor.String, DebugOutputUtils.FilterName(name, MAX_THREAD_NAME));
		}
コード例 #47
0
ファイル: ThreadPrinter.cs プロジェクト: GreenDamTan/dnSpy
		public void WriteLocation(ThreadVM vm) {
			var frame = vm.Thread.CorThread.AllFrames.FirstOrDefault();
			if (frame == null)
				output.Write(dnSpy_Debugger_Resources.Thread_LocationNotAvailable, TextTokenKind.Text);
			else {
				var flags = TypePrinterFlags.Default | TypePrinterFlags.ShowIP;
				if (!useHex)
					flags |= TypePrinterFlags.UseDecimal;
				frame.Write(new OutputConverter(output), flags);
			}
		}
コード例 #48
0
ファイル: Commands.cs プロジェクト: pashav15/pashav
 internal static void GoTo(IModuleIdProvider moduleIdProvider, IDocumentTabService documentTabService, IModuleLoader moduleLoader, IStackFrameService stackFrameService, ThreadVM vm, bool newTab)
 {
     if (vm == null)
     {
         return;
     }
     stackFrameService.SelectedThread = vm.Thread;
     FrameUtils.GoTo(moduleIdProvider, documentTabService, moduleLoader, vm.Thread.AllFrames.FirstOrDefault(f => f.IsILFrame), newTab);
 }
コード例 #49
0
ファイル: ThreadPrinter.cs プロジェクト: GreenDamTan/dnSpy
		public void WriteId(ThreadVM vm) {
			WriteInt32(vm.Id);
		}
コード例 #50
0
ファイル: ThreadPrinter.cs プロジェクト: GreenDamTan/dnSpy
		public void WriteName(ThreadVM vm) {
			var name = vm.Name;
			if (vm.UnknownName)
				output.Write("???", TextTokenKind.Error);
			else if (name == null)
				output.Write(dnSpy_Debugger_Resources.Thread_NoName, TextTokenKind.Text);
			else
				output.Write(DebugOutputUtils.FilterName(name, MAX_THREAD_NAME), TextTokenKind.String);
		}
コード例 #51
0
ファイル: ThreadPrinter.cs プロジェクト: manojdjoshi/dnSpy
		public void WritePriority(ThreadVM vm) {
			switch (vm.Priority) {
			case ThreadPriority.Lowest:			output.Write(BoxedTextColor.EnumField, dnSpy_Debugger_Resources.Thread_Priority_Lowest); break;
			case ThreadPriority.BelowNormal:	output.Write(BoxedTextColor.EnumField, dnSpy_Debugger_Resources.Thread_Priority_BelowNormal); break;
			case ThreadPriority.Normal:			output.Write(BoxedTextColor.EnumField, dnSpy_Debugger_Resources.Thread_Priority_Normal); break;
			case ThreadPriority.AboveNormal:	output.Write(BoxedTextColor.EnumField, dnSpy_Debugger_Resources.Thread_Priority_AboveNormal); break;
			case ThreadPriority.Highest:		output.Write(BoxedTextColor.EnumField, dnSpy_Debugger_Resources.Thread_Priority_Highest); break;
			default:							output.Write(BoxedTextColor.Error, string.Format("???({0})", (int)vm.Priority)); break;
			}
		}