Example #1
0
        public void WriteAssembly(BreakpointVM vm)
        {
            var ilbp = vm.Breakpoint as ILCodeBreakpoint;

            if (ilbp != null)
            {
                var asm = GetAssembly(ilbp);
                if (asm != null)
                {
                    output.Write(asm);
                }
                else
                {
                    output.WriteFilename(ilbp.Assembly);
                }
                return;
            }

            var debp = vm.Breakpoint as DebugEventBreakpoint;

            if (debp != null)
            {
                // nothing
                return;
            }
        }
Example #2
0
        public void WriteName(BreakpointVM vm)
        {
            var ilbp = vm.Breakpoint as ILCodeBreakpoint;

            if (ilbp != null)
            {
                vm.NameError = false;
                bool printedToken = false;
                if (vm.Context.ShowTokens)
                {
                    WriteToken(output, ilbp.SerializedDnToken.Token);
                    output.WriteSpace();
                    printedToken = true;
                }
                // If this is a method in a dynamic module and the module hasn't been loaded yet,
                // this call will try to load it, and then open a dialog box showing the progress.
                // But in rare cases we can't show the dialog box because of Dispatcher limitations,
                // so if we must load the module, fail. Passing in false will prevent loading
                // dynamic modules.
                var method = vm.GetMethodDef(false);
                if (method == null)
                {
                    vm.NameError = true;
                    if (printedToken)
                    {
                        output.Write("???", TextTokenKind.Error);
                    }
                    else
                    {
                        output.Write(string.Format("0x{0:X8}", ilbp.SerializedDnToken.Token), TextTokenKind.Number);
                    }
                }
                else
                {
                    MethodLanguage.Write(output, method, GetFlags(vm.Context));
                }
                output.WriteSpace();
                output.Write("+", TextTokenKind.Operator);
                output.WriteSpace();
                WriteILOffset(output, ilbp.ILOffset);
                return;
            }

            var debp = vm.Breakpoint as DebugEventBreakpoint;

            if (debp != null)
            {
                //TODO:
                return;
            }

            Debug.Fail(string.Format("Unknown breakpoint type: {0}", vm.Breakpoint.GetType()));
        }
Example #3
0
 internal void OnNameErrorChanged(BreakpointVM vm)
 {
     // Called by vm.Dispose() when it's already been removed so don't add an Assert() here
     if (vm.NameError)
     {
         nameErrorCounter++;
     }
     else
     {
         nameErrorCounter--;
     }
     Debug.Assert(0 <= nameErrorCounter && nameErrorCounter <= breakpointList.Count);
 }
Example #4
0
        internal static void GoTo(BreakpointVM vm, bool newTab)
        {
            if (vm == null)
            {
                return;
            }
            var ilbp = vm.Breakpoint as ILCodeBreakpoint;

            if (ilbp == null)
            {
                return;
            }
            DebugUtils.GoToIL(ilbp.SerializedDnSpyToken.Module, ilbp.SerializedDnSpyToken.Token, ilbp.ILOffset, newTab);
        }
Example #5
0
        internal static void GoTo(BreakpointVM vm, bool newTab)
        {
            if (vm == null)
            {
                return;
            }
            var ilbp = vm.Breakpoint as ILCodeBreakpoint;

            if (ilbp == null)
            {
                return;
            }
            DebugUtils.GoToIL(ilbp.Assembly, ilbp.MethodKey, ilbp.ILOffset, newTab);
        }
Example #6
0
        public void WriteFile(BreakpointVM vm)
        {
            var ilbp = vm.Breakpoint as ILCodeBreakpoint;

            if (ilbp != null)
            {
                output.WriteFilename(ilbp.SerializedDnToken.Module.ModuleName);
                return;
            }

            var debp = vm.Breakpoint as DebugEventBreakpoint;

            if (debp != null)
            {
                // nothing
                return;
            }
        }
Example #7
0
        public void WriteAssembly(BreakpointVM vm)
        {
            var ilbp = vm.Breakpoint as ILCodeBreakpoint;

            if (ilbp != null)
            {
                output.Write(new AssemblyNameInfo(ilbp.SerializedDnToken.Module.AssemblyFullName));
                return;
            }

            var debp = vm.Breakpoint as DebugEventBreakpoint;

            if (debp != null)
            {
                // nothing
                return;
            }
        }
Example #8
0
        public void WriteFile(BreakpointVM vm)
        {
            var ilbp = vm.Breakpoint as ILCodeBreakpoint;

            if (ilbp != null)
            {
                output.WriteFilename(ilbp.MethodKey.Module.Name);
                return;
            }

            var debp = vm.Breakpoint as DebugEventBreakpoint;

            if (debp != null)
            {
                // nothing
                return;
            }
        }
Example #9
0
        public void WriteModule(BreakpointVM vm)
        {
            var ilbp = vm.Breakpoint as ILCodeBreakpoint;

            if (ilbp != null)
            {
                // Always use the filename since it matches the module names in the call stack and
                // modules windows
                output.WriteModule(ModulePathToModuleName(ilbp.SerializedDnToken.Module.ModuleName));
                return;
            }

            var debp = vm.Breakpoint as DebugEventBreakpoint;

            if (debp != null)
            {
                // nothing
                return;
            }
        }
Example #10
0
		public void WriteName(BreakpointVM vm) {
			var ilbp = vm.Breakpoint as ILCodeBreakpoint;
			if (ilbp != null) {
				vm.NameError = false;
				bool printedToken = false;
				if (BreakpointSettings.Instance.ShowTokens) {
					WriteToken(output, ilbp.SerializedDnSpyToken.Token);
					output.WriteSpace();
					printedToken = true;
				}
				// If this is a method in a dynamic module and the module hasn't been loaded yet,
				// this call will try to load it, and then open a dialog box showing the progress.
				// But in rare cases we can't show the dialog box because of Dispatcher limitations,
				// so if we must load the module, fail. Passing in false will prevent loading
				// dynamic modules.
				var method = vm.GetMethodDef(false);
				if (method == null) {
					vm.NameError = true;
					if (printedToken)
						output.Write("???", TextTokenType.Error);
					else
						output.Write(string.Format("0x{0:X8}", ilbp.SerializedDnSpyToken.Token), TextTokenType.Number);
				}
				else
					MethodLanguage.WriteToolTip(output, method, null);
				output.WriteSpace();
				output.Write('+', TextTokenType.Operator);
				output.WriteSpace();
				WriteILOffset(output, ilbp.ILOffset);
				return;
			}

			var debp = vm.Breakpoint as DebugEventBreakpoint;
			if (debp != null) {
				//TODO:
				return;
			}

			Debug.Fail(string.Format("Unknown breakpoint type: {0}", vm.Breakpoint.GetType()));
		}
Example #11
0
        public void WriteName(BreakpointVM vm)
        {
            var ilbp = vm.Breakpoint as ILCodeBreakpoint;

            if (ilbp != null)
            {
                var module = GetModule(ilbp) as ModuleDefMD;
                if (BreakpointSettings.Instance.ShowTokens)
                {
                    WriteToken(output, ilbp.MethodKey.Token);
                    output.WriteSpace();
                }
                var method = module == null ? null : module.ResolveToken(ilbp.MethodKey.Token) as IMemberRef;
                if (method == null)
                {
                    output.Write(string.Format("0x{0:X8}", ilbp.MethodKey.Token), TextTokenType.Number);
                }
                else
                {
                    MethodLanguage.WriteToolTip(output, method, null);
                }
                output.WriteSpace();
                output.Write('+', TextTokenType.Operator);
                output.WriteSpace();
                WriteILOffset(output, ilbp.ILOffset);
                return;
            }

            var debp = vm.Breakpoint as DebugEventBreakpoint;

            if (debp != null)
            {
                //TODO:
                return;
            }

            Debug.Fail(string.Format("Unknown breakpoint type: {0}", vm.Breakpoint.GetType()));
        }
Example #12
0
		public void WriteName(BreakpointVM vm) {
			var ilbp = vm.Breakpoint as ILCodeBreakpoint;
			if (ilbp != null) {
				var module = GetModule(ilbp) as ModuleDefMD;
				if (BreakpointSettings.Instance.ShowTokens) {
					WriteToken(output, ilbp.MethodKey.Token);
					output.WriteSpace();
				}
				var method = module == null ? null : module.ResolveToken(ilbp.MethodKey.Token) as IMemberRef;
				if (method == null)
					output.Write(string.Format("0x{0:X8}", ilbp.MethodKey.Token), TextTokenType.Number);
				else
					MethodLanguage.WriteToolTip(output, method, null);
				output.WriteSpace();
				output.Write('+', TextTokenType.Operator);
				output.WriteSpace();
				WriteILOffset(output, ilbp.ILOffset);
				return;
			}

			var debp = vm.Breakpoint as DebugEventBreakpoint;
			if (debp != null) {
				//TODO:
				return;
			}

			Debug.Fail(string.Format("Unknown breakpoint type: {0}", vm.Breakpoint.GetType()));
		}
Example #13
0
		public void WriteFile(BreakpointVM vm) {
			var ilbp = vm.Breakpoint as ILCodeBreakpoint;
			if (ilbp != null) {
				output.WriteFilename(ilbp.MethodKey.Module.Name);
				return;
			}

			var debp = vm.Breakpoint as DebugEventBreakpoint;
			if (debp != null) {
				// nothing
				return;
			}
		}
Example #14
0
		public void WriteModule(BreakpointVM vm) {
			var ilbp = vm.Breakpoint as ILCodeBreakpoint;
			if (ilbp != null) {
				// Always use the filename since it matches the module names in the call stack and
				// modules windows
				output.WriteModule(ModulePathToModuleName(ilbp.MethodKey.Module.Name));
				return;
			}

			var debp = vm.Breakpoint as DebugEventBreakpoint;
			if (debp != null) {
				// nothing
				return;
			}
		}
Example #15
0
        internal static void GoTo(IModuleIdProvider moduleIdProvider, IFileTabManager fileTabManager, Lazy <IModuleLoader> moduleLoader, BreakpointVM vm, bool newTab)
        {
            if (vm == null)
            {
                return;
            }
            var ilbp = vm.Breakpoint as ILCodeBreakpoint;

            if (ilbp == null)
            {
                return;
            }
            DebugUtils.GoToIL(moduleIdProvider, fileTabManager, moduleLoader.Value, ilbp.MethodToken.Module, ilbp.MethodToken.Token, ilbp.ILOffset, newTab);
        }
Example #16
0
		public void WriteFile(BreakpointVM vm) {
			var ilbp = vm.Breakpoint as ILCodeBreakpoint;
			if (ilbp != null) {
				output.WriteFilename(ilbp.SerializedDnSpyToken.Module.ModuleName);
				return;
			}

			var debp = vm.Breakpoint as DebugEventBreakpoint;
			if (debp != null) {
				// nothing
				return;
			}
		}
Example #17
0
		public void WriteAssembly(BreakpointVM vm) {
			var ilbp = vm.Breakpoint as ILCodeBreakpoint;
			if (ilbp != null) {
				output.Write(new AssemblyNameInfo(ilbp.SerializedDnSpyToken.Module.AssemblyFullName));
				return;
			}

			var debp = vm.Breakpoint as DebugEventBreakpoint;
			if (debp != null) {
				// nothing
				return;
			}
		}
Example #18
0
 internal void OnNameErrorChanged(BreakpointVM vm)
 {
     // Called by vm.Dispose() when it's already been removed so don't add an Assert() here
     if (vm.NameError)
         nameErrorCounter++;
     else
         nameErrorCounter--;
     Debug.Assert(0 <= nameErrorCounter && nameErrorCounter <= breakpointList.Count);
 }
Example #19
0
		public void WriteAssembly(BreakpointVM vm) {
			var ilbp = vm.Breakpoint as ILCodeBreakpoint;
			if (ilbp != null) {
				var asm = GetAssembly(ilbp);
				if (asm != null)
					output.Write(asm);
				else
					output.WriteFilename(ilbp.Assembly);
				return;
			}

			var debp = vm.Breakpoint as DebugEventBreakpoint;
			if (debp != null) {
				// nothing
				return;
			}
		}