2011
DOI: 10.1145/1961295.1950395
|View full text |Cite
|
Sign up to set email alerts
|

ConSeq

Abstract: Concurrency bugs are caused by non-deterministic interleavings between shared memory accesses. Their effects propagate through data and control dependences until they cause software to crash, hang, produce incorrect output, etc. The lifecycle of a bug thus consists of three phases: (1) triggering, (2) propagation, and (3) failure. Traditional techniques for detecting concurrency bugs mostly focus on phase (1)--i.e., on finding certain structural patterns of interleavings that are common triggers of c… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1

Citation Types

0
2
0

Year Published

2012
2012
2023
2023

Publication Types

Select...
4
2
1

Relationship

0
7

Authors

Journals

citations
Cited by 11 publications
(2 citation statements)
references
References 54 publications
0
2
0
Order By: Relevance
“…Whereas Rehype focuses on performance and is purely dynamic-analysis-based, much of the existing work on concurrency analysis focuses on detecting concurrency-based bugs such as race conditions [1,2,7], deadlocks [1], and more-general thread-safety violations [3,6]. Most approaches are either based on static analysis [7], potentially with subsequent confirmation via dynamic analysis [14] or a hybrid approach [1], or use dynamic analysis such as execution-replay [10] or execution-modification [6] (such as injected delays) to trigger bugs. While there are some primarily dynamic analysis-based approaches (e.g.…”
Section: Concurrency Analysismentioning
confidence: 99%
“…Whereas Rehype focuses on performance and is purely dynamic-analysis-based, much of the existing work on concurrency analysis focuses on detecting concurrency-based bugs such as race conditions [1,2,7], deadlocks [1], and more-general thread-safety violations [3,6]. Most approaches are either based on static analysis [7], potentially with subsequent confirmation via dynamic analysis [14] or a hybrid approach [1], or use dynamic analysis such as execution-replay [10] or execution-modification [6] (such as injected delays) to trigger bugs. While there are some primarily dynamic analysis-based approaches (e.g.…”
Section: Concurrency Analysismentioning
confidence: 99%
“…Furthermore, given its unified approach (as opposed to, for example, overlay graphs), the APG is particularly well suited to algorithms that combine analysis and transformation. Some existing work combines static analysis and dynamic analysis for the detection of bugs [2,14], especially multi-threading bugs which are particularly difficult to find with static analysis alone. Such work combines static analysis and dynamic analysis to enhance the analysis (detection) process, whereas Scopda combines them to translate dynamic analysis identified improvements back into the static domain (source code).…”
Section: Related Workmentioning
confidence: 99%