News:

When registered with our forums, feel free to send a "here I am" post here to differ human beings from SPAM bots.

Main Menu

Watch a complex struct when debugging

Started by su1, February 21, 2012, 03:30:03 PM

Previous topic - Next topic

su1

Hello,

in my code I define a struct like this:

 
Individuals *individuals = NULL;
individuals = malloc(10*sizeof(Individuals));


When debugging, I know how to watch one individual at a time, by Right click > Adding watch > individuals[3] for example.

But I would like to be able to follow easily the values in every structure in individuals, ie individuals[0], individuals[1], etc... on the same screen (like what I've seen XCode is doing).

Is there a way to do that?

Thanks.

oBFusCATed

(most of the time I ignore long posts)
[strangers don't send me private messages, I'll ignore them; post a topic in the forum, but first read the rules!]

su1

Screenshot of what? I can't give you a screen shot of what I want and don't have...  :D

But here's a screenshot of what I have for now:



As you can see, I can easily access individuals[1], or individuals[2],... But I would like to have in the same watch:

individuals[1]  individuals[2]      ...

offer             offer                 ...
request         request             ...
strength        strength            ...


oBFusCATed

What you tried Right click -> Properties -> Watch as array?
(most of the time I ignore long posts)
[strangers don't send me private messages, I'll ignore them; post a topic in the forum, but first read the rules!]

su1

I guess you mean Right click -> Edit watch -> Watch as array?

So yes I've tried, when I do this I obtain


*individuals

[0] offer             
[1] request         
[2] strength       
...


instead of

*individuals

offer             
request         
strength       
...


but still not what I want:


individuals[1]  individuals[2]      ...

offer             offer                 ...
request         request             ...
strength        strength            ...


It seems like the watch *individuals only shows individuals[0]

killerbot

QuoteIt seems like the watch *individuals only shows individuals[0]
Which is actually correct. NOte that C -arrays are not real arrays/vectors. The name of the C-arrays decays into a pointer to the type ==> *individuals is then actually the same as :

int * foo = new int();

*foo;  // <-- same thing here

oBFusCATed

su1: Also it might be a good idea to try the debugger's branch nightly build or build a version directly from svn (wxpropgrid_debuggers).
(most of the time I ignore long posts)
[strangers don't send me private messages, I'll ignore them; post a topic in the forum, but first read the rules!]

su1

Hey,

thanks for the tips, but it starts to be just over my competences to do that and would take me too much time that I don't have right now.

I was just checking if there was an easy solution, otherwise I'll just use seperate watches for individuals[0], individuals[1], etc..., even if it's not really user-friendly.