Global Sources
EE Times-Asia
Stay in touch with EE Times Asia
EE Times-Asia > EDA/IP

In Hindsight, SW debug can run backward

Posted: 14 Mar 2005 ?? ?Print Version ?Bookmark and Share

Keywords:embedded-software? debugging? virtutech? embedded systems conference? hindsight?

Claiming a huge leap forward for embedded-software debugging, Virtutech Inc. came to last week's Embedded Systems Conference with Hindsight, a debugger that can run programs backward in time. Based on a virtual model of system hardware, Hindsight promises vast increases in software developer productivity.

The tool works with the company's Simics, a system-level simulator that creates virtual models of system hardware. Virtutech presents Hindsight's reversible execution as the most notable debug technology since the development of source code debugging in the 1970s. But there's a precondition for using it: constructing a virtual system model using Simics' proprietary Device Modeling Language (DML). That takes some time, and possibly some initial help from Virtutech.

Virtutech CEO Peter Magnusson said Hindsight lets programmers step backward in time from any arbitrary point, even unbooting an OS if they desire. That can make it much easier to find the source of a bug. When a bug is detected, execution can be reversed until just before it occurs and then checked in detail as the program runs forward again.

Today, if programmers go even one instruction past a critical point, they have to rerun the entire program to return to that point, said Paul McLellan, Virtutech VP of sales and marketing.

Hindsight adds some new terminology to the debug lexicon. All debuggers have a "continue" command that runs the program forward until a breakpoint is reached or the program ends, for example, but Hindsight adds a "reverse continue" command that runs the program backward until a breakpoint is reached or the program begins.

What makes it all possible, said McLellan, is Simics' ability to save checkpoints every so often in the virtual system model. To implement a reverse single-step, Simics restores a previous checkpoint and then runs forward one instruction shy of the current program counter. The process happens so quickly that it appears just to go backward one instruction, McLellan said.

McLellan said that running backward is "slightly slower" than running forward, but not significantly so. Reverse execution imposes less than a 10 percent overhead on normal debugging, he said.

Hindsight can debug any program as long as source code is available. But it requires Simics, and there's some time involved in creating the virtual model. "It varies according to just how complicated the system is, but it's typically on the order of a few person-weeks," McLellan said.

Virtutech has a library of processor models. Other portions of the system will need to be modeled either by the customer or by Virtutech, as a service.

There is no link between Simics and hardware implementation. "DML to RTL is not the problem we're trying to solve," Magnusson said. The Simics virtual model, he said, is "written separately to cater to software development and testing, and also downstream to support demos."

Simics has customers in telecom, servers, wireless, aerospace and networking and is used for microprocessor design; memory design; component development and testing; software quality testing; hardware/software co-simulation; and development of firmware, drivers and OSes.

Hindsight will go into beta sites in May, with production slated for July. Incremental cost over Simics is around $5,000 per seat, but Hindsight won't target single seats. A typical engagement, including Simics, Hindsight and some initial model development, is estimated at $200,000 to $300,000 for a software development group with 10 to 20 seats.

- Richard Goering

EE Times

Article Comments - In Hindsight, SW debug can run backw...
*? You can enter [0] more charecters.
*Verify code:


Visit Asia Webinars to learn about the latest in technology and get practical design tips.

Back to Top