• Bug
  • Status: Closed
  • 2 Major
  • Resolution: Cannot Reproduce
  • teck
  • Reporter: rbodkin
  • May 01, 2007
  • 0
  • Watchers: 0
  • July 27, 2012
  • May 02, 2007

Description

When I debug Tomcat with TC instrumentation inside Eclipse I lose the ability to see fields in my instrumented class. I get various $__tc_MANAGED fields instead of the underlying fields in the code.

Comments

Tim Eck 2007-05-01

The fields are not there at all? Or you can’t “see” their true values (ie. they are are null or something?)

Ron Bodkin 2007-05-01

I’m gave more info about this with Eugene. It turns out that private fields are being made static. This was preventing seeing debug info unless you enable showing static fields in the Eclipse debugger. It also turns out that I’m getting null values on these fields on restart (probably because the fields are treated as static hence not being saved?)

Tim Eck 2007-05-01

cool - that clearly looks like a DSO bug. Unless you happen to have some other bytecode processing stuff in that VM?? If you run trunk you also add -Dtc.classloader.writeToDisk.initial=true to see the bytecode right before we touch it (if the fields are already static before then, then someone else is causing the prob)

Ron Bodkin 2007-05-02

This is on a VM with no other bytecode weaving, but when I get the trunk build working I’ll run with that -D option.

Ron Bodkin 2007-05-02

It turned out the issue was that Tomcat wasn’t redeploying modified code so TC was instrumenting old code in a different format. Sorry for my mistake in not cleaning things thoroughly enough.

Tim Eck 2007-05-02

no prob – just to be sure, you did have a version of that class where all those fields were static at one point in time?

Ron Bodkin 2007-05-02

Yes I did have such a class. I refactored it so Terracotta would know the fields were owned by an instance.

Tim Eck 2007-05-02

this is a false alarm