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

Does the program have a quick way to submit incorrect decompilation?

2 Answers 17 Views
General Discussions
This is a migrated thread and some comments may be shown as answers.
ericnewton76
Top achievements
Rank 1
ericnewton76 asked on 13 Sep 2013, 01:42 PM
DOes the program have some mechanism for reporting "this code block didnt decompile right" ?

That would be helpful to you guys and/or the community at large... where the community could look at the IL and determine better decompilations of it.

I probably should put this in a feature request... ?

Given the attached file, notice the problem here is with the "goto Label2;" but label2 doesn't exist.  However, I would assert that the goto Label2 is meant to just "nop" and "ret(urn)"

Unfortunately I can't also attach the IL source, so I'll post it next

2 Answers, 1 is accepted

Sort by
0
ericnewton76
Top achievements
Rank 1
answered on 13 Sep 2013, 01:43 PM
.method private hidebysig instance void  bSave_Click(object sender,
                                                     class [mscorlib]System.EventArgs e) cil managed
{
  // Code size       402 (0x192)
  .maxstack  4
  .locals init (valuetype [System.Windows.Forms]System.Windows.Forms.DialogResult V_0,
           bool V_1)
  IL_0000:  nop
  IL_0001:  ldarg.0
  IL_0002:  ldfld      class [System.Windows.Forms]System.Windows.Forms.TextBox cpCMSVSAddInCore.frmConfigure::tLocalStorage
  IL_0007:  callvirt   instance string [System.Windows.Forms]System.Windows.Forms.Control::get_Text()
  IL_000c:  callvirt   instance string [mscorlib]System.String::Trim()
  IL_0011:  callvirt   instance int32 [mscorlib]System.String::get_Length()
  IL_0016:  ldc.i4.0
  IL_0017:  ble.s      IL_002b
  IL_0019:  ldarg.0
  IL_001a:  ldfld      class [System.Windows.Forms]System.Windows.Forms.TextBox cpCMSVSAddInCore.frmConfigure::tLocalStorage
  IL_001f:  callvirt   instance string [System.Windows.Forms]System.Windows.Forms.Control::get_Text()
  IL_0024:  call       bool [mscorlib]System.IO.Directory::Exists(string)
  IL_0029:  br.s       IL_002c
  IL_002b:  ldc.i4.1
  IL_002c:  stloc.1
  IL_002d:  ldloc.1
  IL_002e:  brtrue.s   IL_006b
  IL_0030:  nop
  IL_0031:  ldstr      "Local storage path does not exist.  Do you wish to"
  + " create it\?"
  IL_0036:  ldstr      "Create path\?"
  IL_003b:  ldc.i4.4
  IL_003c:  ldc.i4.s   32
  IL_003e:  call       valuetype [System.Windows.Forms]System.Windows.Forms.DialogResult [System.Windows.Forms]System.Windows.Forms.MessageBox::Show(string,
                                                                                                                                                     string,
                                                                                                                                                     valuetype [System.Windows.Forms]System.Windows.Forms.MessageBoxButtons,
                                                                                                                                                     valuetype [System.Windows.Forms]System.Windows.Forms.MessageBoxIcon)
  IL_0043:  stloc.0
  IL_0044:  ldloc.0
  IL_0045:  ldc.i4.6
  IL_0046:  ceq
  IL_0048:  ldc.i4.0
  IL_0049:  ceq
  IL_004b:  stloc.1
  IL_004c:  ldloc.1
  IL_004d:  brtrue.s   IL_0064
  IL_004f:  nop
  IL_0050:  ldarg.0
  IL_0051:  ldfld      class [System.Windows.Forms]System.Windows.Forms.TextBox cpCMSVSAddInCore.frmConfigure::tLocalStorage
  IL_0056:  callvirt   instance string [System.Windows.Forms]System.Windows.Forms.Control::get_Text()
  IL_005b:  call       class [mscorlib]System.IO.DirectoryInfo [mscorlib]System.IO.Directory::CreateDirectory(string)
  IL_0060:  pop
  IL_0061:  nop
  IL_0062:  br.s       IL_006a
  IL_0064:  nop
  IL_0065:  br         IL_0191
  IL_006a:  nop
  IL_006b:  ldarg.0
  IL_006c:  ldfld      class [System.Windows.Forms]System.Windows.Forms.TextBox cpCMSVSAddInCore.frmConfigure::tURL
  IL_0071:  callvirt   instance string [System.Windows.Forms]System.Windows.Forms.Control::get_Text()
  IL_0076:  callvirt   instance string [mscorlib]System.String::Trim()
  IL_007b:  callvirt   instance int32 [mscorlib]System.String::get_Length()
  IL_0080:  ldc.i4.0
  IL_0081:  ceq
  IL_0083:  ldc.i4.0
  IL_0084:  ceq
  IL_0086:  stloc.1
  IL_0087:  ldloc.1
  IL_0088:  brtrue.s   IL_00ba
  IL_008a:  nop
  IL_008b:  ldstr      "Please enter a CMS Address."
  IL_0090:  call       valuetype [System.Windows.Forms]System.Windows.Forms.DialogResult [System.Windows.Forms]System.Windows.Forms.MessageBox::Show(string)
  IL_0095:  pop
  IL_0096:  ldarg.0
  IL_0097:  call       instance void [System.Windows.Forms]System.Windows.Forms.Control::Update()
  IL_009c:  nop
  IL_009d:  ldarg.0
  IL_009e:  ldfld      class [System.Windows.Forms]System.Windows.Forms.TextBox cpCMSVSAddInCore.frmConfigure::tURL
  IL_00a3:  callvirt   instance bool [System.Windows.Forms]System.Windows.Forms.Control::Focus()
  IL_00a8:  pop
  IL_00a9:  ldarg.0
  IL_00aa:  ldfld      class [System.Windows.Forms]System.Windows.Forms.TextBox cpCMSVSAddInCore.frmConfigure::tURL
  IL_00af:  callvirt   instance void [System.Windows.Forms]System.Windows.Forms.TextBoxBase::SelectAll()
  IL_00b4:  nop
  IL_00b5:  br         IL_0191
  IL_00ba:  ldarg.0
  IL_00bb:  ldfld      class [System.Windows.Forms]System.Windows.Forms.TextBox cpCMSVSAddInCore.frmConfigure::tUserName
  IL_00c0:  callvirt   instance string [System.Windows.Forms]System.Windows.Forms.Control::get_Text()
  IL_00c5:  callvirt   instance string [mscorlib]System.String::Trim()
  IL_00ca:  callvirt   instance int32 [mscorlib]System.String::get_Length()
  IL_00cf:  ldc.i4.0
  IL_00d0:  ceq
  IL_00d2:  ldc.i4.0
  IL_00d3:  ceq
  IL_00d5:  stloc.1
  IL_00d6:  ldloc.1
  IL_00d7:  brtrue.s   IL_010e
  IL_00d9:  nop
  IL_00da:  ldstr      "Please enter a username."
  IL_00df:  call       valuetype [System.Windows.Forms]System.Windows.Forms.DialogResult [System.Windows.Forms]System.Windows.Forms.MessageBox::Show(string)
  IL_00e4:  pop
  IL_00e5:  ldarg.0
  IL_00e6:  ldfld      class [System.Windows.Forms]System.Windows.Forms.TextBox cpCMSVSAddInCore.frmConfigure::tUserName
  IL_00eb:  callvirt   instance void [System.Windows.Forms]System.Windows.Forms.Control::Update()
  IL_00f0:  nop
  IL_00f1:  ldarg.0
  IL_00f2:  ldfld      class [System.Windows.Forms]System.Windows.Forms.TextBox cpCMSVSAddInCore.frmConfigure::tUserName
  IL_00f7:  callvirt   instance bool [System.Windows.Forms]System.Windows.Forms.Control::Focus()
  IL_00fc:  pop
  IL_00fd:  ldarg.0
  IL_00fe:  ldfld      class [System.Windows.Forms]System.Windows.Forms.TextBox cpCMSVSAddInCore.frmConfigure::tUserName
  IL_0103:  callvirt   instance void [System.Windows.Forms]System.Windows.Forms.TextBoxBase::SelectAll()
  IL_0108:  nop
  IL_0109:  br         IL_0191
  IL_010e:  ldarg.0
  IL_010f:  ldfld      class [System.Windows.Forms]System.Windows.Forms.TextBox cpCMSVSAddInCore.frmConfigure::tPassword
  IL_0114:  callvirt   instance string [System.Windows.Forms]System.Windows.Forms.Control::get_Text()
  IL_0119:  callvirt   instance string [mscorlib]System.String::Trim()
  IL_011e:  callvirt   instance int32 [mscorlib]System.String::get_Length()
  IL_0123:  ldc.i4.0
  IL_0124:  ceq
  IL_0126:  ldc.i4.0
  IL_0127:  ceq
  IL_0129:  stloc.1
  IL_012a:  ldloc.1
  IL_012b:  brtrue.s   IL_015f
  IL_012d:  nop
  IL_012e:  ldstr      "Please enter a password."
  IL_0133:  call       valuetype [System.Windows.Forms]System.Windows.Forms.DialogResult [System.Windows.Forms]System.Windows.Forms.MessageBox::Show(string)
  IL_0138:  pop
  IL_0139:  ldarg.0
  IL_013a:  ldfld      class [System.Windows.Forms]System.Windows.Forms.TextBox cpCMSVSAddInCore.frmConfigure::tPassword
  IL_013f:  callvirt   instance void [System.Windows.Forms]System.Windows.Forms.Control::Update()
  IL_0144:  nop
  IL_0145:  ldarg.0
  IL_0146:  ldfld      class [System.Windows.Forms]System.Windows.Forms.TextBox cpCMSVSAddInCore.frmConfigure::tPassword
  IL_014b:  callvirt   instance bool [System.Windows.Forms]System.Windows.Forms.Control::Focus()
  IL_0150:  pop
  IL_0151:  ldarg.0
  IL_0152:  ldfld      class [System.Windows.Forms]System.Windows.Forms.TextBox cpCMSVSAddInCore.frmConfigure::tPassword
  IL_0157:  callvirt   instance void [System.Windows.Forms]System.Windows.Forms.TextBoxBase::SelectAll()
  IL_015c:  nop
  IL_015d:  br.s       IL_0191
  IL_015f:  ldsfld     class cpCMSVSAddInCore.cWSUtil cpCMSVSAddInCore.cg::wsUtil
  IL_0164:  ldnull
  IL_0165:  ceq
  IL_0167:  stloc.1
  IL_0168:  ldloc.1
  IL_0169:  brtrue.s   IL_0176
  IL_016b:  ldsfld     class cpCMSVSAddInCore.cWSUtil cpCMSVSAddInCore.cg::wsUtil
  IL_0170:  ldc.i4.0
  IL_0171:  stfld      bool cpCMSVSAddInCore.cWSUtil::bBadAuth
  IL_0176:  ldarg.0
  IL_0177:  ldc.i4.1
  IL_0178:  call       instance void [System.Windows.Forms]System.Windows.Forms.Form::set_DialogResult(valuetype [System.Windows.Forms]System.Windows.Forms.DialogResult)
  IL_017d:  nop
  IL_017e:  ldarg.0
  IL_017f:  call       class [System.Windows.Forms]System.Windows.Forms.Cursor [System.Windows.Forms]System.Windows.Forms.Cursors::get_WaitCursor()
  IL_0184:  callvirt   instance void [System.Windows.Forms]System.Windows.Forms.Control::set_Cursor(class [System.Windows.Forms]System.Windows.Forms.Cursor)
  IL_0189:  nop
  IL_018a:  ldarg.0
  IL_018b:  call       instance void [System.Windows.Forms]System.Windows.Forms.Form::Close()
  IL_0190:  nop
  IL_0191:  ret
} // end of method frmConfigure::bSave_Click
0
Momchil
Telerik team
answered on 13 Sep 2013, 03:06 PM
Hello,

Thanks for pointing us this issue -- it has been logged for future fixing.

Regarding your feature request, you can post it on our uservoice page, which is located at JustDecompile UserVoice website.

Thanks again for your feedback!

Regards,
Momchil
Telerik
Tell us what you think about JustDecompile. Your opinion matters! You can use our forum, or our JustDecompile UserVoice website for feature requests.
Tags
General Discussions
Asked by
ericnewton76
Top achievements
Rank 1
Answers by
ericnewton76
Top achievements
Rank 1
Momchil
Telerik team
Share this question
or