AnsweredAssumed Answered

Incorrect memory locations for Enum values in expressions window

Question asked by Dan Quist on Jul 16, 2012
Latest reply on Jul 18, 2012 by Dan Quist

Hi,

 

using CW 10.2 build 120413.

 

I believe I've found a bug in the expressions window that has cost me a couple days of work.

 

In my c++ application, I am using a custom class that I will call classX. If I add classX to the expressions window, I can expand the view and see all the class members and their values. However, many of the class members were not showing the values that I woudl expect.

 

I picked a couple members from classX and compared the memory locations to the memory locations in the Variables window, and they have different addresses! It is offset by 10-20 words.

 

The base address of the class is the same in both the Expression and Variable windows, so I start going down the list to see where the memory is going wrong.

 

I hit a section of Enum values, Enum1, Enum2, Enum3, and THEY ALL POINT TO THE SAME MEMORY LOCATION! The variable immediately following the enums then starts to advance again.

 

Base address0x100

Enum10x101

Enum20x101<----- THESE ARE NOT ADVANCING

Enum30x101

Int40x102

Int50x103

 

This is causing the entire class structure to get offset whenever there is an Enum value. I tried reproducing the problem with another struct/class but no luck. The class is rather large so I'm wondering if it's maybe a size issue??

 

Also, if I view the class in the Variables window, everything is correct so this is definitely a codewarrior problem.

Outcomes