Skip to content

Memory not updated anymore once a read error occured #50

@bw35

Description

@bw35

Describe the bug
External memories like SDRAM are not accessible until they are properly initialized. When the program is stopped before external memory initialization, a memory view configured for an external memory address will get a read access error. When the program is continued past the point where the external memory is enabled and stopped again, the memory view contents don't update to the now accessible memory contents, not even if the update button is clicked.

To Reproduce
Steps to reproduce the behavior:

  1. Start the program and run it past external memory initialization
  2. Pause the program
  3. Add a memory view on an address in external memory, e,g, 0xd0000000
  4. The memory view displays the contents as expected
  5. Restart program execution e.g. by resetting the device
  6. The program stops on main()
  7. A "Read memory error" message appears.
  8. Update the memory view manually. The contents turn to inaccessible data.
  9. Continue the program past external memory initialization
  10. Pause the program
  11. Manually update the external address memory view, the contents are not updated

Note: Step 9 is to demonstate the defect clearly. If leaving it out, the last valid data remains on screen but will not be updated anymore after the memory becomes accessible, showing stale data.

Expected behavior
When the program stops after the external memory become accessible again, the memory view should update and show the current contents automatically. No stale data should be shown once the memory becomes accessible again.

Screenshots

Image Image Image

Environment

  • OS: Windows 10
  • Version of Memory View: 0.0.27
  • Debugger Type: cortex-debug
  • Debugger Version: 1.12.1

Additional context

  • Reading the external memory with gdb command e.g. x/16 0xd0000000 works as expected once the memory has been enabled.
  • The problem persists across debugging sessions until VSCode is restarted.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions