Pending Review
Last Updated: 01 Oct 2020 17:23 by Houzin

Can not load WinRT Metadata, the option is grayed out even though I am running Windows 10 and the C:\Windows\System32\WinMetadata folder does exist.

 

I also tried open the above folder but JustDecompile says it can not fild the folder! I did start JustDecompile as the admin, no luck.  

Please assist. Thanks. 


Unplanned
Last Updated: 04 Aug 2020 06:23 by ADMIN

Just installed and can't see anything but white screen/faint icons on my laptop.  Can't see anything well enough to even look for settings...

TIA

Unplanned
Last Updated: 04 Aug 2020 06:18 by ADMIN

The attached project causes a decompilation error in the DrawPixels() method:

 

Current member / type: System.Void ConwaysLife.LifeForm::DrawPixels()

Product version: 2019.1.118.0
Exception in: System.Void DrawPixels()

Value does not fall within the expected range.
at ??.??.??(ICodeNode ) in C:\DeveloperTooling_JD_Agent1\_work\15\s\OpenSource\Cecil.Decompiler\Ast\BaseCodeTransformer.cs:line 237
at ??.??.Visit(ICodeNode ) in C:\DeveloperTooling_JD_Agent1\_work\15\s\OpenSource\Cecil.Decompiler\Ast\BaseCodeTransformer.cs:line 276
at ??.??.Visit[??,??](?? ) in C:\DeveloperTooling_JD_Agent1\_work\15\s\OpenSource\Cecil.Decompiler\Ast\BaseCodeTransformer.cs:line 286
at ??.??.Visit(? ) in C:\DeveloperTooling_JD_Agent1\_work\15\s\OpenSource\Cecil.Decompiler\Ast\BaseCodeTransformer.cs:line 317
at ??.??.?(?? ) in C:\DeveloperTooling_JD_Agent1\_work\15\s\OpenSource\Cecil.Decompiler\Ast\BaseCodeTransformer.cs:line 337
at ?.?.?.Match(?? ?, Int32 ?) in C:\DeveloperTooling_JD_Agent1\_work\15\s\OpenSource\Cecil.Decompiler\Steps\RebuildAnonymousDelegatesStep.cs:line 119
at ?.?.?(?? ) in C:\DeveloperTooling_JD_Agent1\_work\15\s\OpenSource\Cecil.Decompiler\Steps\RebuildAnonymousDelegatesStep.cs:line 28
at ?.?.?(DecompilationContext ?, ?? ??) in C:\DeveloperTooling_JD_Agent1\_work\15\s\OpenSource\Cecil.Decompiler\Steps\RebuildAnonymousDelegatesStep.cs:line 21
at ??.??.(MethodBody ??, ?? ?, ILanguage ) in C:\DeveloperTooling_JD_Agent1\_work\15\s\OpenSource\Cecil.Decompiler\Decompiler\DecompilationPipeline.cs:line 88
at ??.??.?(MethodBody ??, ILanguage ) in C:\DeveloperTooling_JD_Agent1\_work\15\s\OpenSource\Cecil.Decompiler\Decompiler\DecompilationPipeline.cs:line 70
at Telerik.JustDecompiler.Decompiler.Extensions.??(?? ??, ILanguage , MethodBody ??, DecompilationContext& ?) in C:\DeveloperTooling_JD_Agent1\_work\15\s\OpenSource\Cecil.Decompiler\Decompiler\Extensions.cs:line 95
at Telerik.JustDecompiler.Decompiler.Extensions.??(MethodBody ??, ILanguage , DecompilationContext& ?,  ??) in C:\DeveloperTooling_JD_Agent1\_work\15\s\OpenSource\Cecil.Decompiler\Decompiler\Extensions.cs:line 58
at ??.??.?(ILanguage , MethodDefinition ?,  ??) in C:\DeveloperTooling_JD_Agent1\_work\15\s\OpenSource\Cecil.Decompiler\Decompiler\WriterContextServices\BaseWriterContextService

 

The code from from here https://github.com/ericlippert/ConwaysLife/tree/episode28

but since the code is frequently changed I've attached a zip file.

Planned
Last Updated: 03 Aug 2020 05:19 by Jonathan

How does one update de4dot to latest available version (2020-06-08)? The plugins manager does not list any update. The current installed version is 2017.2.630.0, whereas the latest available version from github is dated 2020-06-08.

Thanks!

Unplanned
Last Updated: 07 Jul 2020 08:19 by Mark

Whenever using JustDecompile or JustAssembly to decompile or compare an exe with methods that use the "On Error" error handling syntax/style, those methods fail to decompile and instead display an error that has been reported several times.

I have tried to follow the source code to determine where the issue is, but I have had no luck doing so.
It is a rather large and intricate project after all. 🙂

Please add support for decompiling this syntax.

Thank you.

Unplanned
Last Updated: 25 Jun 2020 06:51 by ADMIN
Created by: Yonghan
Comments: 3
Type: Bug Report
1

Code Viewer Font setting is reset every time.

Always Courier New,13 even changing Consolas.

Completed
Last Updated: 09 Jun 2020 15:37 by ADMIN
Created by: Rakesh
Comments: 1
Type: Bug Report
0

Hi,

I think there is an issue with the domain - "justdecompile.telerik.com". Becuase of this, justdecompile cannot install new plugns. 

Certificate name mismatch

Please check the link below for the issue reported.

https://globalsign.ssllabs.com/analyze.html?d=justdecompile.telerik.com

 

Thanks,

Rakesh

Unplanned
Last Updated: 15 May 2020 07:02 by ADMIN
Created by: Michael
Comments: 2
Type: Bug Report
2

I've noticed that the program when exporting a project gives me cameraInfo.get_VerticalExtent()  instead of cameraInfo.VerticalExtent 

It seems to be making a method instead of a property of an object.

Unplanned
Last Updated: 23 Apr 2020 06:31 by ADMIN

Decompiling the following code in either DEBUG or RELEASE build gives the exception below:

 

        public IEnumerable<int> YieldTest(IEnumerable<int> sequenceA, List<int> sequenceB)
        {
            foreach (var i in sequenceA)
            {
                foreach (var j in sequenceB)
                {
                    yield return i*j;
                }
            }
        }

 

So a foreach nested inside another foreach...

 

Current member / type: System.Collections.Generic.IEnumerable`1<System.Int32> Tests.TestClass::YieldTest(System.Collections.Generic.IEnumerable`1<System.Int32>,System.Collections.Generic.List`1<System.Int32>)
File path: C:\Projects\Sandbox\Decompile Test\Tests\Tests\bin\Release\Tests.dll

Product version: 2019.1.118.0
Exception in: System.Collections.Generic.IEnumerable<System.Int32> YieldTest(System.Collections.Generic.IEnumerable<System.Int32>,System.Collections.Generic.List<System.Int32>)

Invalid state value
at €—..(‚ ž, Queue`1 , ILogicalConstruct ”) in C:\DeveloperTooling_JD_Agent1\_work\15\s\OpenSource\Cecil.Decompiler\Decompiler\LogicFlow\YieldGuardedBlocksBuilder.cs:line 203
at €—..Ÿ(‚ ž) in C:\DeveloperTooling_JD_Agent1\_work\15\s\OpenSource\Cecil.Decompiler\Decompiler\LogicFlow\YieldGuardedBlocksBuilder.cs:line 187
at €—..(‚ ž) in C:\DeveloperTooling_JD_Agent1\_work\15\s\OpenSource\Cecil.Decompiler\Decompiler\LogicFlow\YieldGuardedBlocksBuilder.cs:line 129
at €—..š(„ ‚) in C:\DeveloperTooling_JD_Agent1\_work\15\s\OpenSource\Cecil.Decompiler\Decompiler\LogicFlow\YieldGuardedBlocksBuilder.cs:line 76
at €—..() in C:\DeveloperTooling_JD_Agent1\_work\15\s\OpenSource\Cecil.Decompiler\Decompiler\LogicFlow\LogicalFlowBuilderStep.cs:line 126
at €—..œ(DecompilationContext ™, •Ÿ €–) in C:\DeveloperTooling_JD_Agent1\_work\15\s\OpenSource\Cecil.Decompiler\Decompiler\LogicFlow\LogicalFlowBuilderStep.cs:line 51
at ‚–.™“.(MethodBody €–, •Ÿ Ÿ, ILanguage ) in C:\DeveloperTooling_JD_Agent1\_work\15\s\OpenSource\Cecil.Decompiler\Decompiler\DecompilationPipeline.cs:line 88
at ‚–.™“.‹(MethodBody €–, ILanguage ) in C:\DeveloperTooling_JD_Agent1\_work\15\s\OpenSource\Cecil.Decompiler\Decompiler\DecompilationPipeline.cs:line 70
at Telerik.JustDecompiler.Decompiler.Extensions.“(MethodBody €–, DecompilationContext †, Œ Ÿ“, Func`2 ”, DecompilationContext& ”“) in C:\DeveloperTooling_JD_Agent1\_work\15\s\OpenSource\Cecil.Decompiler\Decompiler\Extensions.cs:line 104
at Telerik.JustDecompiler.Decompiler.Extensions.”(MethodBody €–, DecompilationContext †, ž& ž) in C:\DeveloperTooling_JD_Agent1\_work\15\s\OpenSource\Cecil.Decompiler\Decompiler\Extensions.cs:line 139
at ž..–() in C:\DeveloperTooling_JD_Agent1\_work\15\s\OpenSource\Cecil.Decompiler\Steps\RebuildYieldStatementsStep.cs:line 134
at ž..Match(‰ œ—) in C:\DeveloperTooling_JD_Agent1\_work\15\s\OpenSource\Cecil.Decompiler\Steps\RebuildYieldStatementsStep.cs:line 49
at ž..œ(DecompilationContext ™, •Ÿ €–) in C:\DeveloperTooling_JD_Agent1\_work\15\s\OpenSource\Cecil.Decompiler\Steps\RebuildYieldStatementsStep.cs:line 20
at ‚–.™“.(MethodBody €–, •Ÿ Ÿ, ILanguage ) in C:\DeveloperTooling_JD_Agent1\_work\15\s\OpenSource\Cecil.Decompiler\Decompiler\DecompilationPipeline.cs:line 88
at ‚–.™“.‹(MethodBody €–, ILanguage ) in C:\DeveloperTooling_JD_Agent1\_work\15\s\OpenSource\Cecil.Decompiler\Decompiler\DecompilationPipeline.cs:line 70
at Telerik.JustDecompiler.Decompiler.Extensions.›“(™“ œ“, ILanguage , MethodBody €–, DecompilationContext& ™) in C:\DeveloperTooling_JD_Agent1\_work\15\s\OpenSource\Cecil.Decompiler\Decompiler\Extensions.cs:line 95
at Telerik.JustDecompiler.Decompiler.Extensions.š“(MethodBody €–, ILanguage , DecompilationContext& ™,  œ–) in C:\DeveloperTooling_JD_Agent1\_work\15\s\OpenSource\Cecil.Decompiler\Decompiler\Extensions.cs:line 58
at ——.ƒ˜.—(ILanguage , MethodDefinition €,  œ–) in C:\DeveloperTooling_JD_Agent1\_work\15\s\OpenSource\Cecil.Decompiler\Decompiler\WriterContextServices\BaseWriterContextService.

 

I also send an email about this when I encountered it earlier but here is an actual code example.

Unplanned
Last Updated: 22 Apr 2020 12:13 by ADMIN

 

In certain situations with a for-loop nested inside another loop, a break-statement in the inner loop will decompile to a goto that also exits the outer loop.

If this code is compiled in RELEASE mode:

        public void NestedForTest(IEnumerable<char> line)
        {
            foreach (var ch in line)
            {
                for (int i = 0; i < 4; i++)
                {
                    Console.Write("-");     // If this line is removed it works
                    if (ch == 't') break;
                    Console.Write(ch);
                }
            }
            Console.WriteLine();
        }

 

The following code is decompiled:

        public void NestedForTest(IEnumerable<char> line)
        {
        Label0:
            foreach (char ch in line)
            {
                for (int i = 0; i < 4; i++)
                {
                    Console.Write("-");
                    if (ch == 't')
                    {
      goto Label0;   // THIS IS WRONG!
                    }
                    Console.Write(ch);
                }
            }
            Console.WriteLine();
        }

NOTE:

- It is only a problem when the code is compiled in a RELEASE configuration (in DEBUG it interpret it as a while-loop and the code is correct)

- If the line before the exit-check is removed (see comment in code) it decompiles correctly.

 

                 
Unplanned
Last Updated: 22 Apr 2020 08:21 by ADMIN
When reviewing code, it would be helpful to filter and/or highlight the properties/methods that are related to a particular interface.
Unplanned
Last Updated: 16 Apr 2020 13:42 by ADMIN

I'll explain my request by showcasing what another product is doing.

So let's say I want to look at the internals of this class...

 

ILSpy (another open source product that you might have heard of) allows me to jump directly to the class in question

Now I am directly at the class in question.

Now, this product has quite a number of flaws and it seems that JustDecompile has some good potential.

Would it be possible for JustDecompile to also have a feature similar to this?

Declined
Last Updated: 14 Apr 2020 11:13 by ADMIN
Created by: Amanda
Comments: 1
Type: Bug Report
0

I open JustDecompile and immediately get the following error:


System.Xml.XmlException: Root element is missing.
   at System.Xml.XmlTextReaderImpl.Throw(Exception e)
   at System.Xml.XmlTextReaderImpl.ParseDocumentContent()
   at System.Xml.XmlTextReaderImpl.Read()
   at System.Xml.XmlLoader.Load(XmlDocument doc, XmlReader reader, Boolean preserveWhitespace)
   at System.Xml.XmlDocument.Load(XmlReader reader)
   at System.Xml.XmlDocument.Load(String filename)
   at Infrastructure.XmlSerialization.AssemblyLists.FileListSerializer.‰(String ) in C:\DeveloperTooling_JD_Agent1\_work\15\s\UI\Infrastructure\XmlSerialization\AssemblyLists\FileListSerializer.cs:line 226
   at Infrastructure.XmlSerialization.AssemblyLists.FileListSerializer.—(String , Int32& ˜) in C:\DeveloperTooling_JD_Agent1\_work\15\s\UI\Infrastructure\XmlSerialization\AssemblyLists\FileListSerializer.cs:line 172
   at Infrastructure.XmlSerialization.AssemblyLists.FileListSerializer.‰(String •) in C:\DeveloperTooling_JD_Agent1\_work\15\s\UI\Infrastructure\XmlSerialization\AssemblyLists\FileListSerializer.cs:line 109
   at Infrastructure.Configuration.‰(String ƒ) in C:\DeveloperTooling_JD_Agent1\_work\15\s\UI\Infrastructure\Configuration.cs:line 415
   at Infrastructure.Configuration.˜(Action , ITabManager †) in C:\DeveloperTooling_JD_Agent1\_work\15\s\UI\Infrastructure\Configuration.cs:line 395
   at JustDecompile.Shell.<OnShellLoaded>b__38_0() in C:\DeveloperTooling_JD_Agent1\_work\15\s\UI\JustDecompile\Shell.xaml.cs:line 97
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
   at System.Windows.Threading.DispatcherOperation.InvokeImpl()
   at System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(Object state)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at MS.Internal.CulturePreservingExecutionContext.Run(CulturePreservingExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Windows.Threading.DispatcherOperation.Invoke()
   at System.Windows.Threading.Dispatcher.ProcessQueue()
   at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
   at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs)
   at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
   at MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg)
   at System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame)
   at System.Windows.Threading.Dispatcher.PushFrame(DispatcherFrame frame)
   at System.Windows.Application.RunDispatcher(Object ignore)
   at System.Windows.Application.RunInternal(Window window)
   at System.Windows.Application.Run(Window window)
   at JustDecompile.App.Main() in C:\DeveloperTooling_JD_Agent1\_work\15\s\UI\JustDecompile\obj\x86\Release\App.g.cs:line 16777215
In version: 2019.1.118.0

 

I have reported the exception as instructed but have received no response. I've posted in the Forums with no response for over a week as well.

Need More Info
Last Updated: 13 Apr 2020 05:54 by ADMIN
Created by: luka
Comments: 1
Type: Feature Request
0

You should add a feature for editing but not like Reflexil cause that doesn't work at all but more like dnSpy

 

Need More Info
Last Updated: 03 Apr 2020 15:06 by ADMIN
Created by: Joshua
Comments: 1
Type: Feature Request
0
It would be very convenient if the Space bar paged down while viewing a code listing, the same way it works in a web browser. There is nothing in the viewer pane that would require the Space bar as a text input key.
Unplanned
Last Updated: 20 Mar 2020 10:58 by ADMIN
Created by: Francois
Comments: 0
Type: Feature Request
0

When opening Assembly Lists, or any multiple Assemblies in JustDecompile the same Namespace often exists and is extented in different Assemblies.

This makes it difficult to navigate the code because each namespace is shown as a child of the assembly.

It would be very useful to have a mode in which the assemblies can be made transparent with a tree view of the merged namespaces only. This way the user do not have to know in which assembly a certain class is to find it and can get a better view of the global namespace landscape.

For instance currently the browsing tree for two dll's System.dll and System.Web.dll shows:
System
--System.dll
----References
----{} <Default namespace>
------<Module>
----{} System
------Object1
------Object2
----{} System.Web
------Object3
----{} System.Web.Http
------Object4
--Resources
System.Web
-- System.Web.dll
----{} <Default namespace>
------<Module>
----{} System.Web
------Object5
------Object6
----{} System.Web.Http
------Object7
--Resources

Then the merged tree should show only:
{} <Default namespace>
--<Module> System.dll
--<Module> System.Web.dll
{} System
----Object1
----Object2
{} System.Web
----Object3
----Object5
----Object6
{} System.Web.Http
----Object4
----Object7
Resources

The details of which assembly contains the selected node can still be shown on the tab as it is now. The navigation, especially for unfamiliar structures, is much simpler this way and it is easier to see what the globally available objects are/will be in the merged execution environment.

Unplanned
Last Updated: 13 Feb 2020 11:20 by ADMIN
please, make possible to generate pdb of core 3.x *.dll (currently, with latest 2019 version, corresponding menu item is disabled in grey)
Unplanned
Last Updated: 29 Jan 2020 06:20 by ADMIN
Created by: Tony
Comments: 0
Type: Feature Request
0
Support searching for integer values inside JustDecompine
Unplanned
Last Updated: 23 Jan 2020 06:56 by ADMIN
Created by: Bart
Comments: 0
Type: Feature Request
6
Please add an option to switch the UI to dark mode.
Unplanned
Last Updated: 08 Jan 2020 15:54 by ADMIN

Compile the following code:

using System.Collections.Generic;
using System.Collections.ObjectModel;

namespace BugReport {

	public class CustomObservableCollection<T> : ObservableCollection<T> {

		public void AddRange<S>(IEnumerable<S> list) where S : T {
			using (IEnumerator<S> enumerator = list.GetEnumerator()) {
				while (enumerator.MoveNext()) {
					base.Add(enumerator.Current);
				}
			}
		}

	}

}

Open the generated assembly in Just Decompile and look at the result. In my version (2019.1.118.0) I get the following incorrect (not compilable) results:

C#:

using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;

namespace BugReport
{
    public class CustomObservableCollection<T> : ObservableCollection<T>
    {
        public CustomObservableCollection()
        {
        }

        public void AddRange<S>(IEnumerable<S> list)
        where S : T
        {
            foreach (S  in list)
            {
                base.Add((T)(object));
            }
        }
    }
}

VB:


Imports System
Imports System.Collections.Generic
Imports System.Collections.ObjectModel

Namespace BugReport
    Public Class CustomObservableCollection(Of T)
        Inherits ObservableCollection(Of T)
        Public Sub New()
            MyBase.New()
        End Sub

        Public Sub AddRange(Of S As T)(ByVal list As IEnumerable(Of S))
            For Each  As S In list
                MyBase.Add(DirectCast(, T))
            Next
        End Sub
    End Class
End Namespace

 

1 2 3