AnsweredAssumed Answered

Debugger fails to read memory, but application still works

Question asked by dave408 on Feb 11, 2016
Latest reply on Feb 12, 2016 by dave408

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!

Outcomes