热度 18
2011-7-13 13:35
3385 次阅读|
0 个评论
Most of us are familiar with debugging complex applications on the algorithmic-plane (understand and fix issues in design) and the implementaion plane (understand and fix issues in implementation). System level designers using a meta-model driven platform often have access to information like system traces which provide inputs that are not normally available - the system trace, which can include such things like messages being exchanged between components involving memory transactions, packets on a CAN bus, or a peripheral register being set. This level of trace is unprecedented and allows for debugging systems (both for analyzing defects and performance issues) on a whole new plane, the system plane or let's call it the z-plane ! z-plane debugging adds a new class of capability for a design platform. Some old-timers and hardware designers and a small and vanishing class of software developers that still use logic analyzers will understand this concept very well. Let us now see the difference between the x-y plane debugging and the z-plane debugging with an example: Take the case of a segmentation violation. a) Debugging on the x or y planes (algorithmic and implementation) will require a particular line of attack: + Identify location where the problem occurs + Understand program flow + Serially debug (using breakpoints or watchpoints) and iteratively trace back until the root cause is found. This often can take several executions of the program under debugger control. b) Debugging on the z-plane is often a single-iteration process + Identify an execution point where one would like to start generating system trace and place a breakpoint there, + Run the system or "Play The System", a phrase I prefer when using Teraptor Player ! + Enable trace and continue execution from the breakpoint + Trace back the source of the problem using the system trace !! z-plane debugging is a powerful debugging strategy which can some times bring down the time taken to debug complex programs from days, weeks (or even months) on the x-y planes to a matter of minutes or hours in the z-plane. So, start using z-plane debugging when things look bleak on the x-y planes.