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

3 posts, 0 answers
  1. ericnewton76
    ericnewton76 avatar
    2 posts
    Member since:
    Jul 2007

    Posted 13 Sep 2013 Link to this post

    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. ericnewton76
    ericnewton76 avatar
    2 posts
    Member since:
    Jul 2007

    Posted 13 Sep 2013 Link to this post

    .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
  3. DevCraft banner
  4. Momchil
    Admin
    Momchil avatar
    31 posts

    Posted 13 Sep 2013 Link to this post

    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.
Back to Top