You know when you are invited to the St John’s Innovation Centre, part of the Cambridge Enterprise Hub in the UK that supports early-stage knowledge-based businesses and research institutes, that you are going to be in for an interesting day. When it is a press day with a focus on ‘Smart Technology’ and the keynote is being given by none other than Dr Hermann Hauser, the man behind Acorn Computers and ARM all those years ago and now, as co-founder of Amadeus Capital Partners, involved with numerous world beating emerging technologies such as plastic electronics, the level of ‘interesting’ is guaranteed to be top notch.
And so it was, with a hugely interesting presentation on the nature and progress of innovation, and the part that Cambridge University and the technology enterprise sector that has built up around it, has played. Full of insightful anecdotes: I didn’t know that apparently Bell Labs invented the first mobile phone but after market research decided there was no market for it managed to completely miss that particular gravy train. Packed with amazing statistics: 60% of all Bluetooth chips originate from Cambridge courtesy of Amadeus funded CSR who invented the first single chip Bluetooth solution and now dominate the mobile market for such items, and 80% of the world’s mobile phones (not forgetting the GameBoy and the iPod) use an ARM processor also invented at Cambridge.
Cambridge University is rated as the third best in the world and has a staggering 72 Nobel Laureates to its name, so perhaps it should come as no surprise that it is such a centre of innovation. And there were certainly some fascinating and innovative technologies being demonstrated. A virtual gut that accurately simulates the physical and biochemical aspects of human digestion so as to provide an alternative to animal testing for scientists. A system that combines multiple audio channels to boost mobile phone reception by 200% without the need for additional, battery sapping, hardware. A security modeling environment that enables accurate simulation of security issues such as a terror attack on an airport, providing a method for building and testing communications between emergency services, air traffic control and security agencies that once honed and working can be unplugged from the virtual world and turned into instant reality. Even a virtual shop assistant in the form of an interactive avatar that ‘lives’ in the glass of a store window, responding when a potential customer touches the glass and providing out of hours information and out of store advertising.
But the product that will, perhaps, be of most interest to DaniWeb users comes from a Cambridge company called Undo, with what it claims to be the first bidirectional debugger for compiled programs.
UndoDB allows you to peer inside a running program and reverse the execution of the software, in other words it is a debugger that can run backwards regardless of the programming language used and without requiring expensive specialized hardware. Well, kind of, because the current version only supports certain Linux/x86 platforms although Undo assured me that it was working on wider support.
With software bugs estimated to cost $60 billion a year in the US alone, debugging is a huge problem. “Computer bugs are still an every-day fact of life” Greg Law, Managing Director of Undo Ltd told me “incredibly annoying for users and difficult for software developers to prevent. Programmers might not like to admit it, but they can spend most of their time debugging – a process which currently eats up around 80% of software development costs.” The statistic should come as no surprise, given that traditionally the debugging process is a protracted cycle of running the code over and over in an attempt to spot the exact point where the program goes pear shaped. Which is where UndoDB comes in, giving a visual demonstration of the program being reversed, and taking the code backwards step by step.
By giving the developer full control over the nature of the time travel, for want of a better description, it reduces the time taken to determine where the bug first occurred. This control equates to an ability to step back your program line-by-line, rewind it to any point in its history and of course debug it forwards as well. This forwards and backwards movement can be done in a totally repeatable fashion, so making it much easier, in theory at least, to home in on the cause of a bug.
Currently supporting, Debian Sarge (2.4 and 2.6), Fedora Core 3, 4 and 5, Gentoo 2006.0, Mandriva 2006.0, Red Hat Enterprise Linux 4, Slackware 10.2, SUSE 10 and Ubuntu 5.10, UndoDB is available now, free of charge (although not open source) for developers who don’t get paid for their work, and for those that do there is a 30 day trial version and a $495 per seat price tag.
Of course, by now some of you are probably thinking that this isn’t actually anything new at all. After all, the concept of bidirectional debugging has been around for a few years and there are other applications out there for the Java programmers amongst you. VisiComp's RetroRue being the most obvious, and the high profile research tool from the brain of Bil Lewis, Omniscient Debugger. It’s even true to say that UndoDB is not the first to be able to step compiled programs backwards if you count something like the GreenHill’s TimeMachine which takes a dedicated hardware approach to the problem and will set you back something in the region of $20,000. But what Undo has accomplished is worthy of recognition, because it has brought an affordable solution to the compiled program debugging problem, and for that we should all be grateful. It uniquely enables bidirectional debugging of arbitrary Linux binary programs, including those written in C or C++, without requiring any recompilation or other modifications to the program being debugged.