Debugger fails to read memory, but application still works

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Debugger fails to read memory, but application still works

2,809 Views
dave408
Senior Contributor II

I've run into an interesting situation here.  I'm using KDS 3.0, KSDK 1.2, and MQX for KSDK.

If I start my application and pause it, I can see the MQX task list and MQX stack usage by opening their tabs.  I have MQX_MONITOR_STACK added to my preprocessor definitions so that I can get at the stack info.  Everything looks great at this point.

Then I send a command to my board, which kicks off some activity in another task.  After it's done, I pause execution so I can look at the stack usage, and the info is blank and the window is gray.  The same goes for the task list.  Basically, I can't get at any MQX info.  However, the application still appears to run normally.

In the Console window, this is what I see:

Performing single step...

...Target halted (PC = 0x0001938A)

Reading all registers

Read 4 bytes @ address 0x0001938A (Data = 0xF8D368FB)

Removing breakpoint @ address 0x00006CC4, Size = 2

Removing breakpoint @ address 0x00018434, Size = 2

Reading 64 bytes @ address 0x20001500

Read 4 bytes @ address 0x20000000 (Data = 0x20001548)

Read 4 bytes @ address 0x0001A890 (Data = 0xB082B580)

Reading 64 bytes @ address 0x00000000

Read 4 bytes @ address 0x20000000 (Data = 0x20001548)

Read 4 bytes @ address 0x20000000 (Data = 0x20001548)

Read 4 bytes @ address 0x20001720 (Data = 0x00000000)

Read 4 bytes @ address 0x20000000 (Data = 0x20001548)

Read 4 bytes @ address 0x20000000 (Data = 0x20001548)

Read 4 bytes @ address 0x20001580 (Data = 0x20001094)

Read 4 bytes @ address 0x20000000 (Data = 0x20001548)

Read 4 bytes @ address 0x20000000 (Data = 0x20001548)

Read 2 bytes @ address 0x2000177C (Data = 0x0000)

Read 4 bytes @ address 0x20000000 (Data = 0x20001548)

Read 4 bytes @ address 0x20000000 (Data = 0x20001548)

Read 4 bytes @ address 0x20001744 (Data = 0x00000000)

Read 4 bytes @ address 0x20000000 (Data = 0x20001548)

Read 4 bytes @ address 0x20000000 (Data = 0x20001548)

Read 4 bytes @ address 0x2000172C (Data = 0x00000000)

Read 4 bytes @ address 0x20000000 (Data = 0x20001548)

Read 4 bytes @ address 0x20001548 (Data = 0x00000008)

Read 4 bytes @ address 0x2000154C (Data = 0x00000001)

Read 2 bytes @ address 0x20001550 (Data = 0x0000)

Read 2 bytes @ address 0x20001552 (Data = 0x000F)

Read 2 bytes @ address 0x20001554 (Data = 0x000F)

Read 2 bytes @ address 0x20001556 (Data = 0x0002)

Read 2 bytes @ address 0x20001558 (Data = 0x30B8)

Read 2 bytes @ address 0x2000155A (Data = 0x0008)

Read 2 bytes @ address 0x2000155C (Data = 0x0000)

Read 2 bytes @ address 0x2000155E (Data = 0x0040)

Read 2 bytes @ address 0x20001560 (Data = 0x0000)

Read 2 bytes @ address 0x20001562 (Data = 0x0000)

Read 4 bytes @ address 0x20001564 (Data = 0x200013C4)

Read 4 bytes @ address 0x20001568 (Data = 0x20001084)

Read 4 bytes @ address 0x2000156C (Data = 0x20000E74)

Read 4 bytes @ address 0x20001570 (Data = 0x000193DD)

Read 4 bytes @ address 0x20001574 (Data = 0x00000000)

Read 4 bytes @ address 0x20001578 (Data = 0x00000065)

Read 4 bytes @ address 0x2000157C (Data = 0x00000000)

Read 4 bytes @ address 0x20001580 (Data = 0x20001094)

Read 4 bytes @ address 0x20001584 (Data = 0x1FFFFFF0)

Read 4 bytes @ address 0x20001588 (Data = 0x00000000)

Read 4 bytes @ address 0x2000158C (Data = 0x00000000)

Read 4 bytes @ address 0x20001590 (Data = 0x00000000)

Read 4 bytes @ address 0x20001594 (Data = 0x00000000)

Read 4 bytes @ address 0x2000162C (Data = 0x0000057B)

Read 4 bytes @ address 0x20001630 (Data = 0x00000000)

Read 4 bytes @ address 0x20001634 (Data = 0x00000000)

Read 4 bytes @ address 0x20001638 (Data = 0x00000020)

Read 4 bytes @ address 0x2000163C (Data = 0x00000001)

Read 4 bytes @ address 0x2000164C (Data = 0x00000006)

Read 4 bytes @ address 0x20001650 (Data = 0x20002530)

Read 4 bytes @ address 0x20001688 (Data = 0x00000000)

Read 4 bytes @ address 0x200016B0 (Data = 0x00000000)

Read 4 bytes @ address 0x200016B4 (Data = 0x00000000)

Read 4 bytes @ address 0x200016B8 (Data = 0x000000C8)

Read 4 bytes @ address 0x200016BC (Data = 0x00000000)

Read 4 bytes @ address 0x200016C0 (Data = 0x00019999)

Read 4 bytes @ address 0x200016C4 (Data = 0x0001B245)

Read 4 bytes @ address 0x200016C8 (Data = 0x00000000)

Read 4 bytes @ address 0x20001780 (Data = 0x00000000)

Read 4 bytes @ address 0x20001784 (Data = 0x00000000)

Read 4 bytes @ address 0x20001788 (Data = 0x00000000)

Read 4 bytes @ address 0x200017F4 (Data = 0x00000000)

Read 4 bytes @ address 0x20000000 (Data = 0x20001548)

Read 2 bytes @ address 0x200017E4 (Data = 0x0000)

Read 4 bytes @ address 0x20000000 (Data = 0x20001548)

Read 4 bytes @ address 0x20000000 (Data = 0x20001548)

Read 4 bytes @ address 0x20001744 (Data = 0x00000000)

Read 4 bytes @ address 0x20000000 (Data = 0x20001548)

Read 4 bytes @ address 0x20000000 (Data = 0x20001548)

Read 4 bytes @ address 0x20001734 (Data = 0x00000000)

Read 4 bytes @ address 0x20000000 (Data = 0x20001548)

Read 4 bytes @ address 0x20000000 (Data = 0x20001548)

Read 2 bytes @ address 0x200017F0 (Data = 0x0001)

Read 4 bytes @ address 0x20000000 (Data = 0x20001548)

Read 4 bytes @ address 0x20000000 (Data = 0x20001548)

Read 2 bytes @ address 0x20001668 (Data = 0x000D)

Read 4 bytes @ address 0x20000000 (Data = 0x20001548)

Read 4 bytes @ address 0x20000000 (Data = 0x20001548)

Read 4 bytes @ address 0x20001724 (Data = 0x00000000)

Read 4 bytes @ address 0x20000000 (Data = 0x20001548)

Read 4 bytes @ address 0x20000000 (Data = 0x20001548)

Read 4 bytes @ address 0x20001738 (Data = 0x00000000)

Read 4 bytes @ address 0x20000000 (Data = 0x20001548)

Read 4 bytes @ address 0x20000000 (Data = 0x20001548)

Read 4 bytes @ address 0x2000156C (Data = 0x20000E74)

Read 4 bytes @ address 0x20000000 (Data = 0x20001548)

Read 4 bytes @ address 0x20000000 (Data = 0x20001548)

Read 4 bytes @ address 0x2000171C (Data = 0x00000000)

Read 4 bytes @ address 0x20000000 (Data = 0x20001548)

Read 4 bytes @ address 0x20000000 (Data = 0x20001548)

Read 2 bytes @ address 0x20001648 (Data = 0x0005)

Read 4 bytes @ address 0x20000000 (Data = 0x20001548)

Read 4 bytes @ address 0x20000000 (Data = 0x20001548)

Read 4 bytes @ address 0x20001654 (Data = 0x00000000)

Read 4 bytes @ address 0x0002D5F0 (Data = 0x05000200)

Read 4 bytes @ address 0x20000000 (Data = 0x20001548)

Read 4 bytes @ address 0x20000000 (Data = 0x20001548)

Read 2 bytes @ address 0x20001648 (Data = 0x0005)

Read 4 bytes @ address 0x20000000 (Data = 0x20001548)

Read 4 bytes @ address 0x20000000 (Data = 0x20001548)

Read 4 bytes @ address 0x20001640 (Data = 0x200038AC)

Read 4 bytes @ address 0x20000000 (Data = 0x20001548)

Read 4 bytes @ address 0x20000000 (Data = 0x20001548)

Read 4 bytes @ address 0x20001564 (Data = 0x200013C4)

Reading 148 bytes @ address 0x20003840

Read 4 bytes @ address 0x200038A8 (Data = 0x200038D4)

Read 4 bytes @ address 0x200038E4 (Data = 0x0002C510)

Reading 8 bytes @ address 0x0002C510

Reading 32 bytes @ address 0x0002C510

Read 4 bytes @ address 0x2000385C (Data = 0x20000F14)

Read 2 bytes @ address 0x20000F22 (Data = 0x0017)

Read 4 bytes @ address 0x200038CC (Data = 0x00000000)

Reading 8192 bytes @ address 0x20003900

Reading 7984 bytes @ address 0x20005900

Read 4 bytes @ address 0x200038AC (Data = 0x20001430)

Reading 148 bytes @ address 0x200013C4

Read 4 bytes @ address 0x2000142C (Data = 0x20001458)

Read 4 bytes @ address 0x20001468 (Data = 0x0002B504)

Reading 8 bytes @ address 0x0002B504

Reading 8 bytes @ address 0x0002B50C

Reading 32 bytes @ address 0x0002B504

Read 4 bytes @ address 0x200013E0 (Data = 0x20000E74)

Read 2 bytes @ address 0x20000E82 (Data = 0x0021)

Read 4 bytes @ address 0x20001450 (Data = 0x00000000)

Reading 192 bytes @ address 0x20001480

Read 4 bytes @ address 0x20001430 (Data = 0x20002A3C)

Reading 148 bytes @ address 0x200029D0

Read 4 bytes @ address 0x20002A38 (Data = 0x00000000)

Read 4 bytes @ address 0x00000010 (Data = 0x000184BD)

Reading 8 bytes @ address 0x000184BD

Reading 32 bytes @ address 0x000184BD

Read 4 bytes @ address 0x200029EC (Data = 0x20000F14)

Read 2 bytes @ address 0x20000F22 (Data = 0x0017)

Read 4 bytes @ address 0x20002A5C (Data = 0x00000000)

Reading 816 bytes @ address 0x20002A90

Read 4 bytes @ address 0x20002A3C (Data = 0xFFFFFFED)

Reading 148 bytes @ address 0xFFFFFF80

WARNING: Failed to read memory @ address 0xFFFFFF80

WARNING: Failed to read memory @ address 0xFFFFFF80

Read 1 bytes @ address 0x00000013 (Data = 0x00)

Reading 74 bytes @ address 0xFFFFFFC9

WARNING: Failed to read memory @ address 0xFFFFFFC9

Reading 37 bytes @ address 0xFFFFFFEE

WARNING: Failed to read memory @ address 0xFFFFFFEE

Reading 19 bytes @ address 0x00000000

Reading 9 bytes @ address 0xFFFFFFF7

WARNING: Failed to read memory @ address 0xFFFFFFF7

Reading 5 bytes @ address 0xFFFFFFFB

WARNING: Failed to read memory @ address 0xFFFFFFFB

WARNING: Failed to read memory @ address 0xFFFFFFFD

WARNING: Failed to read memory @ address 0xFFFFFFFE

WARNING: Failed to read memory @ address 0xFFFFFFFF

WARNING: Failed to read memory @ address 0xFFFFFFE9

The lines of interest say "WARNING: Failed to read memory".  In the case where the MQX tabs work, I don't get the memory warning.  But if I do get this warning, I'm pretty much guaranteed that the task info isn't going to be available.

I have a few questions:

  1. What might be causing this problem?
  2. What is the significance of the memory addresses that can't be read?  How are they used?
  3. Is it a fluke that my application is still running?  What are the potential long-term problems here?

Thanks!

0 Kudos
1 Reply

1,231 Views
dave408
Senior Contributor II

I'm going to temporarily answer part of my own question:

1. It looks like this is a case of a task running out of stack space.  I actually have a related question regarding MQX and stack usage, but will post that as a separate question.

3. Memory corruption is one of those things where it'll look like it's working, but deep down under, things are not executing as planned.  It's just a matter of time until something misbehaves, which is eventually what happened in my case.

0 Kudos