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

[BareMetal] Integrate with the KEIL uVision debugger

    XMLWordPrintable

    Details

    • Type: Suggestion
    • Status: Closed
    • Priority: Not Evaluated
    • Resolution: Done
    • Affects Version/s: None
    • Fix Version/s: Qt Creator 4.12.0-beta1
    • Component/s: Debugger
    • Labels:
      None
    • Environment:
      • Host: Windows
      • KEIL uVision v5.23/5.29
    • Platform/s:
      Windows
    • Commits:
      96c1fbcd0a1329ce3f674d3d53bc8b31eecd903f (qt-creator/qt-creator/master)

      Description

      It would be good to have a KEIL v5.xxx debugger integration.

      The KEIL provides the UVSC API which allows to do this:

      http://www.keil.com/appnotes/docs/apnt_198.asp

      But, I have found a strange issues with the UVSC API, which are causes the following limitations:

      1) It is impossible to fetch of an addresses of a local variables (except the structs and the arrays).

      2) It is impossible to fetch a root/main stack info: the returned address, file name, function are empty.

      3) It is impossible to get the current location after the 'step-into' and the 'step-over' execution from the root/main stack: always returned "undefined" error with an empty frame address.

      4) Also there are present some bugs at enumeration of a members of local variables for the structures: its members has a wrong values at its initializations.

      I have created the pre-liminary implementation here: https://github.com/denis-shienkov/qt-creator/tree/uvsc

      == What does work ==

      1) Enumeration of a registers view (read/write).
      2) Enumeration of a local variables view (read/write).
      3) Enumeration of a warchers view (read/write).
      4) Start/stop debugging.
      5) Step-in (replaced by step-by-instruction, because only it does work)
      6) Step-over (replaced by step-by-instruction, because only it does work)
      7) Step-out
      8) Step-by-instruction
      9) Disassembler view.
      10) Break-points
      11) Enumeration of a stack frames.
      12) Enumeration of a threads (tasks)
      13) Update the current location (marker/cursor)

      == Kits ==

      1) Implemented auto-detection of a KEIL compilers
      2) Implemented auto-detection of a uVision debugger.
      3) Implemented wizard for choosing of the debug providers.

      == What is debug provider does work ==

      1) Implemented the Simulator (for ARM, STM32).
      2) Implemented ST-Link debugger (for ARM STM32)

        Attachments

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

          Activity

            People

            Assignee:
            kuzulis Denis Shienkov
            Reporter:
            kuzulis Denis Shienkov
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved:

                Gerrit Reviews

                There are no open Gerrit changes