I am debugging an algorithm implementation that involves many large matrices on a c6678. They are contained in a structure and each element in the structure is a pointer to an array, like so:
typedef struct data { double *y0; double *Qd; double *Fd; double *Qp; }data;
When I manually debug I can see the elements just fine in the variables window (data->y0 etc), so there must be a symbol in the .out file right? The problem is I cannot seem to find these symols in the .out file using the nm6x utility.
I can see the structure itself:
nm6x -A -l test6.out |find "data" [5679] |0x80874080| 128| GLOB|OBJT|HIDN|30|data
but not the elements:
nm6x -A -l test6.out |find "Qp" *nothing found*
How do I lookup the elements, or force the linker to retain the symbols?
So why is this a problem? The matrices are quite large and very difficult to inspect in CCS. So, I am using DSS scripts to export the variables to files which I then read into Matlab. This is a really powerful tool and I am glad I found it except that I cannot access the variables I need. To save the variables using DSS you need to lookup their address like so:
var address = ds.symbol.getAddress("Qp") ds.memory.saveRaw(PAGE_PROGRAM, address, "Qp.bin",40*40*2,64,false)
But that doesnt work because Qp is not in the symbol table. How can I access data.Qp?
I am not quite sure if this is a problem with DSS or more of a c6000 linker issue so I am going to post this in both sections. Thanks for the help.