I had this issue on CCSv5.1 M5 too. I posted it up here 6-21-11 and got no replies. I've since upgraded from M5 to M6 release, but the issue has apparently not been resolved yet, so I thought I'd re-post this question under the newer M6 release.
I've been having a few issues when doing Linux kernel debugging on the 8148EVM. For the most part I can set breakpoints and CCS breaks properly when using a JTAG device. But when I then open the Variables window, frequently, the values are all wrong. It mostly shows the "Location" column as containing "Register R11". When I look directly in the matching Disassembly window I can clearly see that a given variable just loaded into R3 for instance, but the value displayed in the "Value" column is wrong and doesn't get updated properly, even when I step or break after source code which sets or gets said variable. I do have optimization turned off when I compile the my code, and I'm also in a function call after the prologue, but before the epilogue.
I'm also wondering if some variables and their values are being changed improperly by the debugger? For instance, does the debugger use whatever stack has been setup by Linux? If it does is it properly restoring it to whatever state it was in prior to using it?