As rapid advances in computing hardware have led to dramatic improvement in computer performance, the issues of reliability, availability, maintainability, and cost of ownership are becoming increasingly important.Although many state-of-the-art debugging tools have been proposed to detect bugs automatically, the ubiquity of software bugs is a strong testimony to the fact that the debugging research is still far from providing a perfect solution. As a result, software bugs continue to be frequent, accounting for as much as 40% of computer system failures. In this talk, I will present our recent research on our ARTS project. The goal of our ARTS project is to efficiently and effectively detect bugs in software, and to enable software surviving bugs to support non-stop service. Our ARTS project consists of four parts: (1)static program analysis using intelligent algorithms such as data mining techniques; (2)dynamic execution monitoring with innovative architectural support; (3)architecture and OS support for interactive debugging; and (4)OS support for dynamically surviving software failures. In particular, my talk will focus on architectural support for on-the-fly bug detection, with a brief description of other work such as data mining for detecting copy-paste and related bugs and OS support for interactive debugging and non-stop service.