Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[platform-debug-dev] Collapsing register tree or no source updates: pick your poison?

Hi all,

I've been moving our Eclipse 3.1-based debugger code to Eclipse 3.2 and
run into a problem that I'm not quite sure how to fix.

The problem: our debugger no longer steps into include files. 

After a bit of digging, I discovered that
StackFrameSourceDisplayAdapter#displaySource() only schedules a
SourceLookupJob if the stack frame changes from the cached one. 

This is a problem for us because we reuse the same stack frame object
for the entire debug session so the cached object and current one are
always one in the same object. [1]  It's a hack that we used to prevent
the register view tree from collapsing every time the program executes,
which is a real pain for assembly code developers who heavily rely on
the register view. 

In Eclipse 3.1, we forced source-locator updates by firing CHANGE events
from the stack frame whenever execution suspended, but this doesn't
appear to have any effect in Eclipse 3.2.

I thought I might fix both problems by generating a new stack frame
object whenever the program suspends, while caching and reusing the same
register group and register objects.

This does solve the source locator problem. I can step into other source
files. Unfortunately, it also brings back the problem with the register
view collapsing whenever the target is run. 

Any suggestions on how to fix both problems?

[1] This isn't as crazy as it might sound since we only support
assembly-level coding and debugging. Conceptually, there aren't any
stack frames.

- Ken


_______________________________________
Ken Dyck
Senior Member of Technical Staff
Software Tools Group
AMI Semiconductor Canada Company
Tel: +1.519.884.9696 ext 2277
Fax: +1.519.884.0228
Email address: ken_dyck@xxxxxxxx
Internet: http://www.amis.com 
AMI Semiconductor - "Silicon Solutions for the Real World"
NOTICE: 
This electronic message contains information that may be confidential or privileged. The information is intended for the use of the individual or entity named above. If you are not the intended recipient, please be aware that any disclosure, copying, distribution or use of the contents of this information is prohibited. If you received this electronic message in error, please notify the sender and delete the copy you received.



Back to the top