org.eclipse.cdt.debug.edc.internal.services.dsf.RunControl implements the core debug model for execution contexts (Processes & Threads). Context creation and management happens here along with support for the basics like stepping, stopping, resuming, terminating etc. Events from the debug target (breakpoints, exceptions, library loads) are handled here as well.
org.eclipse.cdt.debug.edc.internal.services.dsf.Modules keeps track of each bit of code loaded on the debug target. Unless you know where the code is you can't stop in it, step in it, or set breakpoints in it. This relies on an accurate set of library loaded events from the debug target agent.
Accurate symbol reading is key to almost everything a source level debugger does. The packages org.eclipse.cdt.debug.edc.internal.symbols and org.eclipse.cdt.debug.edc.internal.symbols.dwarf contain a general symbol reader interface and an implementation that understands the DWARF format. Both are design for the needs of a debugger, not for general symbol browsing. So far development has focused on making a complete reader that is well integrated with the rest of EDC. Development is continuing to make the reader faster and scale to very large symbol files.
Variables & Expressions
Variables are handled as Expressions and Expressions are parsed using the CDT lauguage parser and then evaluated in org.eclipse.cdt.debug.edc.internal.eval.ast.engine and org.eclipse.cdt.debug.edc.internal.eval.ast.engine.instructions.
TCF Agent Management
When an EDC debugger needs the services of a TCF agent it will use the TCFServiceManager to find a sutiable agent if one it running and launch an available agent if needed. An example is in org.eclipse.cdt.debug.edc.windows.Win32AgentDescriptor.
In addition to the fine interfaces provided by the TCF project EDC has some new ones in org.eclipse.cdt.debug.edc.tcf.extension.services:
ILogging - Let's clients listen for log messages from the agent
ISettings - Let's clients push a set of settings properties to an agent
ISimpleRegisters - A simplified registers interface. Created while the TCF IRegisters interface was still evolving it is probably unecessary now and can be phased out.
ISymbianInstall - Manages downloading and installing a Symbian application onto a connected phone. This is currently specific Symbian and doesn't belong in CDT. It will be moved later to evolved into a more general installation interface.
The EDC debugger supports a debug snapshot feature that lets you capture the state of a debug session at any point and then view it again later just as you would a live session. Debug snapshots captured during a session are combined into a snapshot album. There is some early support for this in org.eclipse.cdt.debug.edc.internal.snapshot. Complete support is coming as soon as a few things work their way through the Eclipse IP review process.
Tests are in org.eclipse.cdt.debug.edc.tests. Some of the tests can be run without starting a debug session. Others start a debug session using a saved snapshot and then test it as if it were a live session.