示例#1
0
 void WriteFilename(ModuleVM vm, string filename)
 {
     if (vm.Module.IsDynamic || vm.Module.IsInMemory)
     {
         filename = DebugOutputUtils.FilterName(filename, 300);
     }
     output.WriteFilename(filename);
 }
示例#2
0
 static string GetModuleFilename(DnModule module)
 {
     if (module.IsDynamic)
     {
         return(null);
     }
     if (!module.IsInMemory)
     {
         return(DebugOutputUtils.GetFilename(module.Name));
     }
     if (module.CorModule.IsManifestModule)
     {
         return(DebugOutputUtils.GetFilename(new AssemblyNameInfo(module.Assembly.FullName).Name));
     }
     return(DebugOutputUtils.GetFilename(module.DnlibName));
 }
示例#3
0
        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));
            }
        }
示例#4
0
        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);
            }
        }
示例#5
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);
            }
        }
示例#6
0
        static void Save(ModuleVM[] files)
        {
            if (files.Length == 0)
            {
                return;
            }
            var buffer = new byte[0x10000];

            if (files.Length == 1)
            {
                var vm       = files[0];
                var filename = new PickSaveFilename().GetFilename(vm.Module.Name, GetDefaultExtension(vm.Module.Name, vm.IsExe), PickFilenameConstants.DotNetAssemblyOrModuleFilter);
                if (string.IsNullOrEmpty(filename))
                {
                    return;
                }
                Save(vm.Module, filename, buffer);
            }
            else
            {
                var dir = new PickDirectory().GetDirectory(null);
                if (string.IsNullOrEmpty(dir))
                {
                    return;
                }
                foreach (var file in files)
                {
                    var filename = DebugOutputUtils.GetFilename(file.Module.Name);
                    if (filename.IndexOf('.') < 0)
                    {
                        filename += file.IsExe ? ".exe" : ".dll";
                    }
                    bool saved = Save(file.Module, Path.Combine(dir, filename), buffer);
                    if (!saved)
                    {
                        return;
                    }
                }
            }
        }
示例#7
0
 public void WriteFilename(ProcessVM vm)
 {
     WriteFilename(vm, DebugOutputUtils.GetFilename(vm.FullPath));
 }
示例#8
0
 public void WriteName(ModuleVM vm)
 {
     WriteFilename(vm, DebugOutputUtils.GetFilename(vm.Module.Name));
 }