C4.5: programs for machine learning
C4.5: programs for machine learning
Eraser: a dynamic data race detector for multi-threaded programs
Proceedings of the sixteenth ACM symposium on Operating systems principles
Hoard: a scalable memory allocator for multithreaded applications
ACM SIGPLAN Notices
Visualization of test information to assist fault localization
Proceedings of the 24th International Conference on Software Engineering
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
Hybrid dynamic data race detection
Proceedings of the ninth ACM SIGPLAN symposium on Principles and practice of parallel programming
Concurrent Bug Patterns and How to Test Them
IPDPS '03 Proceedings of the 17th International Symposium on Parallel and Distributed Processing
RacerX: effective, static detection of race conditions and deadlocks
SOSP '03 Proceedings of the nineteenth ACM symposium on Operating systems principles
Mining metrics to predict component failures
Proceedings of the 28th international conference on Software engineering
Discriminative pattern mining in software fault detection
Proceedings of the 3rd international workshop on Software quality assurance
Data Mining: Practical Machine Learning Tools and Techniques, Second Edition (Morgan Kaufmann Series in Data Management Systems)
Instrumenting where it hurts: an automatic concurrent debugging technique
Proceedings of the 2007 international symposium on Software testing and analysis
Learning from mistakes: a comprehensive study on real world concurrency bug characteristics
Proceedings of the 13th international conference on Architectural support for programming languages and operating systems
Mining Edge-Weighted Call Graphs to Localise Software Bugs
ECML PKDD '08 Proceedings of the 2008 European Conference on Machine Learning and Knowledge Discovery in Databases - Part I
Using Static Analysis to Find Bugs
IEEE Software
Identifying bug signatures using discriminative graph mining
Proceedings of the eighteenth international symposium on Software testing and analysis
MulticoreSDK: a practical and efficient data race detector for real-world applications
Proceedings of the 7th Workshop on Parallel and Distributed Systems: Testing, Analysis, and Debugging
Multithreaded java program test generation
IBM Systems Journal
Why Programs Fail, Second Edition: A Guide to Systematic Debugging
Why Programs Fail, Second Edition: A Guide to Systematic Debugging
Spectrum-Based Multiple Fault Localization
ASE '09 Proceedings of the 2009 IEEE/ACM International Conference on Automated Software Engineering
Multi-threaded testing with AOP is easy, and it finds bugs!
Euro-Par'05 Proceedings of the 11th international Euro-Par conference on Parallel Processing
Lightweight defect localization for java
ECOOP'05 Proceedings of the 19th European conference on Object-Oriented Programming
Software-defect localisation by mining dataflow-enabled call graphs
ECML PKDD'10 Proceedings of the 2010 European conference on Machine learning and knowledge discovery in databases: Part I
Hi-index | 0.00 |
Writing multithreaded software for multicore computers confronts many developers with the difficulty of finding parallel programming errors. In the past, most parallel debugging techniques have concentrated on finding race conditions due to wrong usage of synchronization constructs. A widely unexplored issue, however, is that a wrong usage of non-parallel programming constructs may also cause wrong parallel application behavior. This paper presents a novel defect-localization technique for multithreaded shared-memory programs that is based on analyzing execution anomalies. Compared to race detectors that report just on wrong synchronization, this method can detect a wider range of defects affecting parallel execution. It works on a condensed representation of the call graphs of multithreaded applications and employs data-mining techniques to locate a method containing a defect. Our results from controlled application experiments show that we found race conditions, but also other programming errors leading to incorrect parallel program behavior. On average, our approach reduced in our benchmark the amount of code to be inspected to just 7.1% of all methods.