
Mike Wellington wrote:
People at my place of work are telling me that the Vision-Ice supports "backtrace" and the BDI2000 does not. I looked on the Abatron website and it doesn't say. Can anyone confirm or deny this?
I can't talk about the Abatron, but for vICE there are a couple of options which are/were available.
By "backtrace", I mean the ability to set a breakpoint, hit that breakpoint, and be able to see the last N instructions executed.
In the old days there was vEVENT. It was a bus trace system which captured all accesses from the CPU to any/all peripherals. It was available for most of the architectures WR/EST supported. This was EOL'd in favour of the LA-Trace.
LA-Trace is a combination of a vPROBE or vICE with a full logic analyser. The reason for switching to this was that the old vEVENT could not keep up with the newer CPU's running at high (>50MHz) bus speeds.
The problem with both of these options, and any other system using bus capture, is that they don't see everything. When the CPU is executing code from cache there is nothing visible outside so all you see are the code and data read/writes associated with a cache miss. Worse still is that when a read occurs the cache will usually get a complete cache line, not just the word required. Somtimes the whole line will be used (as in sequential code) but not always. It's tricky working out what is relevant and what is not. As caches get bigger so this problem gets worse.
The best option is vTRACE, but it is available only on a limited number of CPU's. This is beacuse vTrace uses the trace capability built in to some CPU's. The best trace capabilities are in the ColdFIRE range - they all support data tracing as well as code, but on PowerPC you can get code trace on the 405x, 440GP and 56x (NEXUS). There are also some MIPS processors which have this capability.
Whilst we are talking about vICE, thought I would just mention that it now supports Linux debugging too on some CPUs. That is, it has MMU awareness for the 82xx and 405x CPUs so you can debug the kernel and loadable modules with full source code. More than that though, they now also support some user-land debugging. I spose this is more relevant to the linux mailing list though...
Rich