Uploaded image for project: 'Qt Creator'
  1. Qt Creator
  2. QTCREATORBUG-12082

QtCreator's Operate by Instruction window omits some assembly instructions

    XMLWordPrintable

Details

    • Bug
    • Resolution: Cannot Reproduce
    • Not Evaluated
    • None
    • Qt Creator 3.1.0
    • Debugger
    • None
    • Linux brucedglados 3.5.0-48-generic #72~precise1-Ubuntu SMP Tue Mar 11 20:09:08 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

    Description

      Some ranges of assembly instructions are still omitted from the QtCreator disassembly (Operate by Instruction) window. This happened with 3.0.0 and happens with 3.1.0. I am running the 64-bit QtCreator and debugging 32-bit programs. I have cleared out my .gdbinit file to avoid complications from it, but the problem persists. I can't figure out what the pattern is - some instructions appear, others don't. The omitted instructions seem to occur in blocks.

      Here is some disassembly from the command window:

      >~" 0xf6b1eff4 <+36>:\tlea 0x0(%esi,%eiz,1),%esi\n"
      >~" 0xf6b1eff8 <+40>:\tmov (%edi),%eax\n"
      >~" 0xf6b1effa <+42>:\tmov 0x11c(%esi),%edx\n"
      >~" 0xf6b1f000 <+48>:\tmov (%eax,%ebx,4),%eax\n"
      >~" 0xf6b1f003 <+51>:\tadd $0x1,%ebx\n"
      >~" 0xf6b1f006 <+54>:\tmov 0x54(%edx),%edx\n"
      >~" 0xf6b1f009 <+57>:\tmovswl 0x14(%eax),%ecx\n"
      >~" 0xf6b1f00d <+61>:\tmov (%edx,%ecx,4),%edx\n"
      >~" 0xf6b1f010 <+64>:\tmov 0x4c(%edx),%edx\n"
      >~" 0xf6b1f013 <+67>:\tmov %eax,0x4(%esp)\n"
      >~" 0xf6b1f017 <+71>:\tmov %esi,(%esp)\n"
      >~" 0xf6b1f01a <+74>:\tand $0xfffff,%edx\n"
      >~" 0xf6b1f020 <+80>:\tadd 0x10(%ebp),%edx\n"
      >~" 0xf6b1f023 <+83>:\tmov %edx,0x8(%esp)\n"
      >~" 0xf6b1f027 <+87>:\tmov (%esi),%eax\n"
      >~" 0xf6b1f029 <+89>:\tcall *(%eax)\n"
      >~" 0xf6b1f02b <+91>:\tcmp 0xc(%edi),%ebx\n"
      >~" 0xf6b1f02e <+94>:\tjl 0xf6b1eff8 <CPropOffsetStack::RecurseAndCallProxies(CSendNode*, unsigned char*)+40>\n"

      Here is what the Operate by Instruction window shows:

      0xf6b1eff4 <+0x0024> lea 0x0(%esi,%eiz,1),%esi
      0xf6b1f003 <+0x0033> add $0x1,%ebx
      0xf6b1f02b <+0x005b> cmp 0xc(%edi),%ebx
      0xf6b1f02e <+0x005e> jl 0xf6b1eff8 <CPropOffsetStack::RecurseAndCallProxies(CSendNode*, unsigned char*)+40>

      Here's the raw memory for the entire function:

      0xf6b1efd0: 55 89 e5 57 56 53 83 ec 1c 8b 7d 0c 8b 75 08 8b 55 10 0f b7 47 22 89 54 86 08 8b 47 0c 85 c0 7e
      0xf6b1eff0: 3f 31 db 90 8d 74 26 00 8b 07 8b 96 1c 01 00 00 8b 04 98 83 c3 01 8b 52 54 0f bf 48 14 8b 14 8a
      0xf6b1f010: 8b 52 4c 89 44 24 04 89 34 24 81 e2 ff ff 0f 00 03 55 10 89 54 24 08 8b 06 ff 10 3b 5f 0c 7c c8
      0xf6b1f030: 83 c4 1c 5b 5e 5f 5d c3

      I opened this bug a few minutes ago and then accidentally closed it. Sorry.

      Attachments

        Issue Links

          No reviews matched the request. Check your Options in the drop-down menu of this sections header.

          Activity

            People

              hjk hjk
              brucedawson Bruce Dawson
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes