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

GDB Engine trunk information messages from the OpenOCD

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Not Evaluated Not Evaluated
    • None
    • Qt Creator 4.4.0-beta1
    • Debugger
    • None
    • c3461837689d115ecfe7eea58067b7213036987e

      In Application Output pane we can observe next text (bare-metal remote debugging is used):
      {code}
      Debugging starts
      questing target halt and executing a soft rese
      rget halted in ARM state due to debug-request, current mode: Superviso
      sr: 0x600000d3 pc: 0x0000000
      U: disabled, D-Cache: disabled, I-Cache: disable
      apter speed: 1000 kH
      ading done
      {code}

      Some of the given string from the Debugger log console:
      {code}
      >&"monitor soft_reset_halt\n"
      >&"requesting target halt and executing a soft reset\n"
      >@"requesting target halt and executing a soft reset\n"
       questing target halt and executing a soft rese
      ...
      >&"monitor echo \"Loading done.\"\n"
      >&"Loading done.\n"
      >@"Loading done.\n"
       ading done
      >79^done
      {code}

      Problem in gdbengine.cpp in GdbEngine::handleRespone() in "case '@'". I add debug output and capture next result
      {code}
      Buff: "@\"requesting target halt and executing a soft reset\\n\"" , data: "requesting target halt and executing a soft reset\n" , msg: "questing target halt and executing a soft rese"
      Buff: "@\"target halted in ARM state due to debug-request, current mode: Supervisor\\n\"" , data: "target halted in ARM state due to debug-request, current mode: Supervisor\n" , msg: "rget halted in ARM state due to debug-request, current mode: Superviso"
      Buff: "@\"cpsr: 0x600000d3 pc: 0x00000000\\n\"" , data: "cpsr: 0x600000d3 pc: 0x00000000\n" , msg: "sr: 0x600000d3 pc: 0x0000000"
      Buff: "@\"MMU: disabled, D-Cache: disabled, I-Cache: disabled\\n\"" , data: "MMU: disabled, D-Cache: disabled, I-Cache: disabled\n" , msg: "U: disabled, D-Cache: disabled, I-Cache: disable"
      Buff: "@\"adapter speed: 1000 kHz\\n\"" , data: "adapter speed: 1000 kHz\n" , msg: "apter speed: 1000 kH"
      {code}

      Where:

      • Buff - handleResponse() arg
      • data - string result of GdbMi::parseCString(from, to) call
      • msg - result string

      More analysis:
      {code}
      Input Buff: "@\"requesting target halt and executing a soft reset\\n\""
      From-to data: "requesting target halt and executing a soft reset\n"
      Result msg: "questing target halt and executing a soft rese"
      {code}

      Observation:
      1. Two first signs drops
      2. Two last signs drops

      Seem that given switch case was not changed when from/to iterators logic was reworked. Currently
      from already points to the valid place and mid(2) is not required. We also want to keep last symbol,
      but must trunk new-line. So fix must be simple:
      {code}
      QString msg = data.left(data.size() - 1);
      {code}

        For Gerrit Dashboard: QTCREATORBUG-18494
        # Subject Branch Project Status CR V

            hjk hjk
            monah_tuk Alexander Drozdov
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved:

                There are no open Gerrit changes