Dynamic tools for software bug detection such as Purify are commonly used because they leverage run-time information. However, they suffer from a fundamental limitation, namely the Path Coverage Problem: they detect bugs only in taken paths but not in non-taken paths. In other words, they require bugs to be exposed in the monitored execution. This paper makes one of the first attempts to address this fundamental problem with a simple architecture extension. We propose SpanCoverage, a novel design that dynamically increases the path coverage of dynamic bug detection tools with no involvement from programmers. As a program executes, SpanCoverage also selectively executes non-taken paths in a hardware sandbox without side effects. This enab...
Software defects, commonly known as bugs, present a serious challenge for system reliability and dep...
In this paper we propose a unified architectural support that can be used flexibly for either soft-e...
Recent impressive performance improvements in computer architecture have not led to significant gain...
Dynamic tools for software bug detection such as Purify are commonly used because they leverage run-...
As Moore's law has been continuously improving the microprocessor's speed, performance is no longer ...
Bugs caused by improperly bounded program inputs cost software companies millions of dollars annuall...
Although software is pervasive, almost all programs suffer from bugs and errors. To detect software ...
Although they are helpful in many cases, state-of-the-art bug reporting systems may impose excessive...
As hardware performance and dependability have dramatically improved in the past few decades, the so...
In software development, fixing bugs is an im- portant task that is time consuming and cost-sensitiv...
Symbolic execution is one of the most powerful tools in static analysis for finding bugs. In this te...
Thesis (Ph. D.)--Massachusetts Institute of Technology, Dept. of Electrical Engineering and Computer...
This paper makes two contributions to architectural support for software debugging. First, it propos...
This paper makes two contributions to architectural support for software debugging. First, it propos...
This work proposes new combinations of static and dynamic analysis for bug detection and program und...
Software defects, commonly known as bugs, present a serious challenge for system reliability and dep...
In this paper we propose a unified architectural support that can be used flexibly for either soft-e...
Recent impressive performance improvements in computer architecture have not led to significant gain...
Dynamic tools for software bug detection such as Purify are commonly used because they leverage run-...
As Moore's law has been continuously improving the microprocessor's speed, performance is no longer ...
Bugs caused by improperly bounded program inputs cost software companies millions of dollars annuall...
Although software is pervasive, almost all programs suffer from bugs and errors. To detect software ...
Although they are helpful in many cases, state-of-the-art bug reporting systems may impose excessive...
As hardware performance and dependability have dramatically improved in the past few decades, the so...
In software development, fixing bugs is an im- portant task that is time consuming and cost-sensitiv...
Symbolic execution is one of the most powerful tools in static analysis for finding bugs. In this te...
Thesis (Ph. D.)--Massachusetts Institute of Technology, Dept. of Electrical Engineering and Computer...
This paper makes two contributions to architectural support for software debugging. First, it propos...
This paper makes two contributions to architectural support for software debugging. First, it propos...
This work proposes new combinations of static and dynamic analysis for bug detection and program und...
Software defects, commonly known as bugs, present a serious challenge for system reliability and dep...
In this paper we propose a unified architectural support that can be used flexibly for either soft-e...
Recent impressive performance improvements in computer architecture have not led to significant gain...