This is a migrated thread and some comments may be shown as answers.

Failed to decompile: Stack empty.

7 Answers 66 Views
General Discussions
This is a migrated thread and some comments may be shown as answers.
Gordon Buxton
Top achievements
Rank 1
Gordon Buxton asked on 17 Aug 2011, 10:20 AM
Hi - the tool looks absolutely fabulous, just what I need, but I'm getting an exception decompiling several of the methods in a DLL.

Most methods / properties look OK, but I get this error:

Current member / type: System.Void GPRWebSyncComm.GPRWebSyncComm::AddFieldData(System.Data.DataTable,System.Data.DataRow,System.Int32,System.String)
File path: D:\Projects\GPR\GPRWebSync\GPRWebSyncComm.dll
Stack empty.
   at ..()
   at ..(MethodReference method)
   at ..OnCall(Instruction instruction)
   at ..(Instruction instruction, IInstructionVisitor visitor)
   at Telerik.JustDecompiler.Decompiler.StatementDecompiler.(Instruction instruction)
   at Telerik.JustDecompiler.Decompiler.StatementDecompiler.(InstructionBlock block)
   at Telerik.JustDecompiler.Decompiler.StatementDecompiler.€(InstructionBlock block)
   at Telerik.JustDecompiler.Decompiler.StatementDecompiler.“(Int32 index, BlockStatement block)
   at Telerik.JustDecompiler.Decompiler.StatementDecompiler.“(InstructionBlock start, InstructionBlock limit, BlockStatement block)
   at Telerik.JustDecompiler.Decompiler.StatementDecompiler.( data, IfStatement conditional)
   at Telerik.JustDecompiler.Decompiler.StatementDecompiler.(Instruction instruction)
   at Telerik.JustDecompiler.Decompiler.StatementDecompiler.†(Instruction instruction)
   at Telerik.JustDecompiler.Decompiler.StatementDecompiler.OnBne_Un(Instruction instruction)
   at ..(Instruction instruction, IInstructionVisitor visitor)
   at Telerik.JustDecompiler.Decompiler.StatementDecompiler.„(Instruction instruction)
   at Telerik.JustDecompiler.Decompiler.StatementDecompiler.(Instruction instruction)
   at Telerik.JustDecompiler.Decompiler.StatementDecompiler.(InstructionBlock block)
   at Telerik.JustDecompiler.Decompiler.StatementDecompiler.€(InstructionBlock block)
   at Telerik.JustDecompiler.Decompiler.StatementDecompiler.“(Int32 index, BlockStatement block)
   at Telerik.JustDecompiler.Decompiler.StatementDecompiler.“(InstructionBlock start, InstructionBlock limit, BlockStatement block)
   at Telerik.JustDecompiler.Decompiler.StatementDecompiler.( data, IfStatement conditional)
   at Telerik.JustDecompiler.Decompiler.StatementDecompiler.(Instruction instruction)
   at Telerik.JustDecompiler.Decompiler.StatementDecompiler.†(Instruction instruction)
   at Telerik.JustDecompiler.Decompiler.StatementDecompiler.OnBeq(Instruction instruction)
   at ..(Instruction instruction, IInstructionVisitor visitor)
   at Telerik.JustDecompiler.Decompiler.StatementDecompiler.„(Instruction instruction)
   at Telerik.JustDecompiler.Decompiler.StatementDecompiler.(Instruction instruction)
   at Telerik.JustDecompiler.Decompiler.StatementDecompiler.(InstructionBlock block)
   at Telerik.JustDecompiler.Decompiler.StatementDecompiler.€(InstructionBlock block)
   at Telerik.JustDecompiler.Decompiler.StatementDecompiler.“(Int32 index, BlockStatement block)
   at Telerik.JustDecompiler.Decompiler.StatementDecompiler.“(InstructionBlock start, InstructionBlock limit, BlockStatement block)
   at Telerik.JustDecompiler.Decompiler.StatementDecompiler.(ExceptionHandlerData data)
   at Telerik.JustDecompiler.Decompiler.StatementDecompiler.(InstructionBlock block, InstructionBlock previous)
   at Telerik.JustDecompiler.Decompiler.StatementDecompiler.€(InstructionBlock block)
   at Telerik.JustDecompiler.Decompiler.StatementDecompiler.()
   at Telerik.JustDecompiler.Decompiler.StatementDecompiler.Process(DecompilationContext context, BlockStatement body)
   at Telerik.JustDecompiler.Decompiler.DecompilationPipeline.Run(MethodBody body, ILanguage language)
   at Telerik.JustDecompiler.Decompiler.Extensions.(DecompilationPipeline pipeline, ILanguage language, MethodBody body)
   at Telerik.JustDecompiler.Languages.BaseImperativeLanguageWriter.Write(MethodDefinition method)
   at Telerik.JustDecompiler.Languages.BaseLanguageWriter.Write(IMemberDefinition member, Boolean showCompilerGeneratedMembers)
   at JustDecompile.CodeViewer.CodeWriter.Write() in c:\B\Behemoth\JustDecompile Production Build\Sources\UI\JustDecompile.CodeViewer\Writers\CodeWriter.cs:line 34
   at JustDecompile.CodeViewer.ViewModels.CodeViewerViewModel.(AssemblyMemberNode member, CancellationToken cancellationToken) in c:\B\Behemoth\JustDecompile Production Build\Sources\UI\JustDecompile.CodeViewer\ViewModels\CodeViewerViewModel.cs:line 116

I can't attach the file but is there somewhere I can email it to?

7 Answers, 1 is accepted

Sort by
0
Ronnie
Top achievements
Rank 1
answered on 17 Aug 2011, 07:30 PM
I get the same problem. The code is not obfuscated because it is just a few methods in the class that cause the problem.

Stack empty.
   at System.ThrowHelper.ThrowInvalidOperationException(ExceptionResource resource)
   at System.Collections.Generic.Stack`1.Pop()
   at ..()
   at ..OnCall(Instruction instruction)
   at ..OnCallvirt(Instruction instruction)
   at ..(Instruction instruction, IInstructionVisitor visitor)
   at Telerik.JustDecompiler.Cil.BaseInstructionVisitor.Visit(Instruction instruction)
   at Telerik.JustDecompiler.Decompiler.StatementDecompiler.(Instruction instruction)
   at Telerik.JustDecompiler.Decompiler.StatementDecompiler.(InstructionBlock block)
   at Telerik.JustDecompiler.Decompiler.StatementDecompiler.€(InstructionBlock block)
   at Telerik.JustDecompiler.Decompiler.StatementDecompiler.“(Int32 index, BlockStatement block)
   at Telerik.JustDecompiler.Decompiler.StatementDecompiler.“(InstructionBlock start, InstructionBlock limit, BlockStatement block)
   at Telerik.JustDecompiler.Decompiler.StatementDecompiler.“(BlockRange range, BlockStatement block)
   at Telerik.JustDecompiler.Decompiler.StatementDecompiler.( data, IfStatement conditional)
   at Telerik.JustDecompiler.Decompiler.StatementDecompiler.(Instruction instruction)
   at Telerik.JustDecompiler.Decompiler.StatementDecompiler.†(Instruction instruction)
   at Telerik.JustDecompiler.Decompiler.StatementDecompiler.OnBrtrue(Instruction instruction)
   at ..(Instruction instruction, IInstructionVisitor visitor)
   at Telerik.JustDecompiler.Cil.BaseInstructionVisitor.Visit(Instruction instruction)
   at Telerik.JustDecompiler.Decompiler.StatementDecompiler.„(Instruction instruction)
   at Telerik.JustDecompiler.Decompiler.StatementDecompiler.(Instruction instruction)
   at Telerik.JustDecompiler.Decompiler.StatementDecompiler.(InstructionBlock block)
   at Telerik.JustDecompiler.Decompiler.StatementDecompiler.€(InstructionBlock block)
   at Telerik.JustDecompiler.Decompiler.StatementDecompiler.“(Int32 index, BlockStatement block)
   at Telerik.JustDecompiler.Decompiler.StatementDecompiler.“(InstructionBlock start, InstructionBlock limit, BlockStatement block)
   at Telerik.JustDecompiler.Decompiler.StatementDecompiler.(ExceptionHandlerData data)
   at Telerik.JustDecompiler.Decompiler.StatementDecompiler.(InstructionBlock block, InstructionBlock previous)
   at Telerik.JustDecompiler.Decompiler.StatementDecompiler.€(InstructionBlock block)
   at Telerik.JustDecompiler.Decompiler.StatementDecompiler.()
   at Telerik.JustDecompiler.Decompiler.StatementDecompiler.Run()
   at Telerik.JustDecompiler.Decompiler.StatementDecompiler.Process(DecompilationContext context, BlockStatement body)
   at Telerik.JustDecompiler.Decompiler.DecompilationPipeline.Run(MethodBody body, ILanguage language)
   at Telerik.JustDecompiler.Decompiler.Extensions.(DecompilationPipeline pipeline, ILanguage language, MethodBody body)
   at Telerik.JustDecompiler.Decompiler.Extensions.Decompile(MethodBody body, ILanguage language)
   at Telerik.JustDecompiler.Languages.BaseImperativeLanguageWriter.Write(MethodDefinition method)
   at Telerik.JustDecompiler.Languages.BaseLanguageWriter.Write(IMemberDefinition member, Boolean showCompilerGeneratedMembers)
   at JustDecompile.CodeViewer.CodeWriter.Write() in c:\B\Behemoth\JustDecompile Production Build\Sources\UI\JustDecompile.CodeViewer\Writers\CodeWriter.cs:line 32
   at JustDecompile.CodeViewer.ViewModels.CodeViewerViewModel.(AssemblyMemberNode member, CancellationToken cancellationToken) in c:\B\Behemoth\JustDecompile Production Build\Sources\UI\JustDecompile.CodeViewer\ViewModels\CodeViewerViewModel.cs:line 116
0
Nikolay G Rusev
Telerik team
answered on 23 Aug 2011, 09:02 AM
Hello there,

 Thank you for the feedback.

Gordon, you can send us the assembly at nikolayg(dot)rusev(at)telerik(dot)com.

Ronnie, could you tell us how to reproduce the error? We can see that the exception is the same, but since it can happen for various reasons it would be best to investigate it separately.

Regards,
Nikolay G Rusev
the Telerik team

Thank you for being the most amazing .NET community! Your unfailing support is what helps us charge forward! We'd appreciate your vote for Telerik in this year's DevProConnections Awards. We are competing in mind-blowing 20 categories and every vote counts! VOTE for Telerik NOW >>

0
Gordon Buxton
Top achievements
Rank 1
answered on 23 Aug 2011, 09:48 AM
I've emailed the DLL. I hope it helps!
0
Ronnie
Top achievements
Rank 1
answered on 24 Aug 2011, 07:13 PM
Nikolay, you asked how you could reproduce the error I'm having. Well I notice that some of the methods contained in the list (with a purple rectangle) have the name grayed out. It is when I click on one of those that the exception happens. I'm sure these individual methods are not obfuscated but what does it mean that they are grayed out?
Thanks for a great product!
Ronnie
0
Nikolay G Rusev
Telerik team
answered on 29 Aug 2011, 01:05 PM
Thank you for the follow up.

 Gordon, we were able to reproduce the error thanks to the dll.

 Ronnie, the methods with greyed out names are private, protected or internal. The problem you are having is certainly not because of that.

The exception that you both get is because of a certain try/catch construction that we fail to handle properly.
We already know about this problem and we are working on fixing it, so stay tuned.

Greetings,
Nikolay G Rusev
the Telerik team

Thank you for being the most amazing .NET community! Your unfailing support is what helps us charge forward! We'd appreciate your vote for Telerik in this year's DevProConnections Awards. We are competing in mind-blowing 20 categories and every vote counts! VOTE for Telerik NOW >>

0
Jim
Top achievements
Rank 1
answered on 16 Sep 2011, 09:18 PM
Nikolay,

I am having the same error as Gordon.  You said that a fix is in the works and to stay tuned.  Has this been resolved?  How would I get the patch?

Thank you.

Jim
0
Nikolay G Rusev
Telerik team
answered on 21 Sep 2011, 09:35 AM
Hi Jim,

 This issue still hasn't been resolved. We are currently doing a major overhaul of our decompilation engine that is going to address multiple issues that have been reported so far, this being one of them. So, we are going to release a "universal" fix for a number of structural problems like this. Most probably it's gonna come together with a major JD version update.

So, the best thing you can do is turn on your new version notifications and update regularly. We are definitely gonnna fix this issue.

Greetings,
Nikolay G Rusev
the Telerik team

Explore the entire Telerik portfolio by downloading the Ultimate Collection trial package. Get it now >>

Tags
General Discussions
Asked by
Gordon Buxton
Top achievements
Rank 1
Answers by
Ronnie
Top achievements
Rank 1
Nikolay G Rusev
Telerik team
Gordon Buxton
Top achievements
Rank 1
Jim
Top achievements
Rank 1
Share this question
or