Writing new FindBugs detectors
|
|
|
- Donna Gilbert
- 10 years ago
- Views:
Transcription
1 Writing new FindBugs detectors Why? You may find bug patterns in your own code How? Inspect bytecode There are many ways to implement a FindBugs detector Often, simple techniques (e.g., sequential scan) suffice
2 Basic Approach (! important ) Start with a bug Write the simplest possible detector that might find similar bugs Evaluate: does it find enough interesting bugs without too many false positives? Refine: improve analysis and FP suppression heuristics Repeat steps 3 and 4 until you get something acceptable or you give up on the idea
3 Example Bug Don t use String literals for the synchronized blocks! static private final String LOCK = "LOCK"; void somemethod() { synchronized(lock) {... }} This example from Jetty If other code synchronizes on same String Possible deadlock
4 Writing a detector Add test case Bytecode: LDC "LOCK" DUP ASTORE 1 MONITORENTER Let s use opcode stack. Could also look for bytecode sequence.
5 SynchronizationOnSharedBuiltinConstant public void sawopcode(int seen) { if (seen == MONITORENTER) { OpcodeStack.Item top = stack.getstackitem(0); ("; top.getsignature().equals("ljava/lang/string ) if ( String && top.getconstant() instanceof bugreporter.reportbug(new BugInstance(this, "DL_SYNCHRONIZATION_ON_SHARED_CONSTANT", ( NORMAL_PRIORITY ( addclassandmethod(this. ( addstring((string)constant..addsourceline(this)); } }
6 Results Found issue fixed in Jetty-352. Jetty-352 didn t fix all occurrences in Jetty (Jetty-362). Also found occurrences in Eclipse, glassfish, Sun s JDK, netbeans, nutch, oc4j, weblogic, websphere Not bad for 20 minutes work
7 Why simple techniques work We aren t trying to prove anything about the code Simple mistakes generally result in mistakes that are easy to find javac does minimal optimization/transformation Simple analysis produces results that are easy to triage
8 Bytecode frameworks All FindBugs detectors work by analyzing bytecode. Supported frameworks: BCEL ( DOM-like API ASM ( SAX-like API Currently, much of the supporting FindBugs infrastructure is based on BCEL. Support for ASM-based analyses and detectors is experimental.
9 Types of detectors Most FindBugs detectors use one of the following implementation techniques: Inspecting class/method/field structure Micropatterns: simple bytecode patterns Stack-based patterns Dataflow analysis Interprocedural analysis Each technique is supported by ready-made base classes and support infrastructure
10 Inspecting class/method/field structure Some detectors do not require code analysis. Examples: Find classes that override equals() but not () hashcode Find method naming problems (e.g., hashcode() (() hashcode instead of
11 Micropatterns: simple bytecode patterns E.g., unconditional wait: Source code synchronized (lock) { lock.wait();... } Bytecode in class file ALOAD 0 GETFIELD A.lock DUP ASTORE 1 MONITORENTER ALOAD 0 GETFIELD A.lock INVOKEVIRTUAL Object.wait()V
12 Detector states
13 Stack-based patterns Micropatterns where the values on the operand stack are significant. Example: As seen earlier: look for monitorenter on constant String value Typical implementation strategy: Inquire about values on operand stack Warn when suspicious instruction sequence/stack values seen
14 Dataflow analysis Use intraprocedural dataflow analysis to infer (probable) facts within methods. You may need to dust off your copy of the Dragon book. Examples: Find dereferences of null values Find field accesses not consistently protected by a lock
15 Interprocedural analysis Summarize method behavior, and use that summary at each call site. Examples: Method parameters that are unconditionally dereferenced. Return values that are always nonnull. Methods that always throw an exception.
16 For more information Slides from PLDI tutorial, Using FindBugs for Research In-depth discussion of writing FindBugs detectors Source code for demo plugin with two detectors
Improving Software Quality with Static Analysis and Annotations for Software Defect Detection
Improving Software Quality with Static Analysis and Annotations for Software Defect Detection William Pugh Professor, Univ. of Maryland http://www.cs.umd.edu/~pugh TS-2007 About Me Professor at Univ. of
Built-in Concurrency Primitives in Java Programming Language. by Yourii Martiak and Mahir Atmis
Built-in Concurrency Primitives in Java Programming Language by Yourii Martiak and Mahir Atmis Overview One of the many strengths of Java is the built into the programming language support for concurrency
<Insert Picture Here> What's New in NetBeans IDE 7.2
Slide 1 What's New in NetBeans IDE 7.2 The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated
University of Twente. A simulation of the Java Virtual Machine using graph grammars
University of Twente Department of Computer Science A simulation of the Java Virtual Machine using graph grammars Master of Science thesis M. R. Arends, November 2003 A simulation of the Java Virtual Machine
ABSTRACT TO FIND BUGS. Department of Computer Science. can be found using simple analysis techniques. We have found that simple static
ABSTRACT Title of dissertation: SIMPLE AND EFFECTIVE STATIC ANALYSIS TO FIND BUGS David H. Hovemeyer, Doctor of Philosophy, 2005 Dissertation directed by: Professor William W. Pugh Department of Computer
02 B The Java Virtual Machine
02 B The Java Virtual Machine CS1102S: Data Structures and Algorithms Martin Henz January 22, 2010 Generated on Friday 22 nd January, 2010, 09:46 CS1102S: Data Structures and Algorithms 02 B The Java Virtual
State of the World - Statically Verifying API Usage Rule
Statically Verifying API Usage Rule using Tracematches Xavier Noumbissi, Patrick Lam University of Waterloo November 4, 2010 (University of Waterloo) Statically Verifying API Usage Rule November 4, 2010
Comparing Four Static Analysis Tools for Java Concurrency Bugs
Comparing Four Static Analysis Tools for Java Concurrency Bugs Md. Abdullah Al Mamun, Aklima Khanam, Håkan Grahn, and Robert Feldt School of Computing, Blekinge Institute of Technology SE-371 79 Karlskrona,
Checking Access to Protected Members in the Java Virtual Machine
Checking Access to Protected Members in the Java Virtual Machine Alessandro Coglio Kestrel Institute 3260 Hillview Avenue, Palo Alto, CA 94304, USA Ph. +1-650-493-6871 Fax +1-650-424-1807 http://www.kestrel.edu/
Virtual Machines. Case Study: JVM. Virtual Machine, Intermediate Language. JVM Case Study. JVM: Java Byte-Code. JVM: Type System
Case Study: JVM Virtual Machines What is a machine? does something (...useful) programmable concrete (hardware) What is a virtual machine? a machine that is not concrete a software emulation of a physical
Ontology Model-based Static Analysis on Java Programs
Ontology Model-based Static Analysis on Java Programs Lian Yu 1, Jun Zhou, Yue Yi, Ping Li, Qianxiang Wang School of Software and Microelectronics, Peking University, Beijing, 102600, PRC Abstract 1 Typical
Nullness Analysis of Java Bytecode via Supercompilation over Abstract Values
Nullness Analysis of Java Bytecode via Supercompilation over Abstract Values Ilya G. Klyuchnikov JetBrains; Keldysh Institute of Applied Mathematics of RAS Abstract. Code inspections in the upcoming release
Java Virtual Machine Locks
Java Virtual Machine Locks SS 2008 Synchronized Gerald SCHARITZER (e0127228) 2008-05-27 Synchronized 1 / 13 Table of Contents 1 Scope...3 1.1 Constraints...3 1.2 In Scope...3 1.3 Out of Scope...3 2 Logical
Assessing Tools for Finding Bugs in Concurrent Java
Assessing Tools for Finding Bugs in Concurrent Java Alexandros Spathoulas E H U N I V E R S I T Y T O H F G R E D I N B U Master of Science Computer Science School of Informatics University of Edinburgh
Java SE 7 Programming
Java SE 7 Programming The second of two courses that cover the Java Standard Edition 7 (Java SE 7) Platform, this course covers the core Application Programming Interfaces (API) you will use to design
Pentesting Java/J2EE, finding remote holes
Pentesting Java/J2EE, finding remote holes Marc Schoenefeld University of Bamberg HackInTheBox 2006 Marc Schoenefeld (Uni Bamberg) Pentest J2EE, remote holes HackInTheBox 2006 1 / 42 Agenda 1 Context 2
Data Flow Static Code Analysis Best Practices
Data Flow Static Code Analysis Best Practices Introduction This paper examines why and how to add flow analysis to your existing testing strategies. After introducing the general concept and benefits of
Write Barrier Removal by Static Analysis
Write Barrier Removal by Static Analysis Karen Zee and Martin Rinard Laboratory for Computer Science Massachusetts Institute of Technology Cambridge, MA 02139 {kkz, [email protected] ABSTRACT We present
The Java Virtual Machine (JVM) Pat Morin COMP 3002
The Java Virtual Machine (JVM) Pat Morin COMP 3002 Outline Topic 1 Topic 2 Subtopic 2.1 Subtopic 2.2 Topic 3 2 What is the JVM? The JVM is a specification of a computing machine Instruction set Primitive
UI Performance Monitoring
UI Performance Monitoring SWT API to Monitor UI Delays Terry Parker, Google Contents 1. 2. 3. 4. 5. 6. 7. Definition Motivation The new API Monitoring UI Delays Diagnosing UI Delays Problems Found! Next
Structural Typing on the Java Virtual. Machine with invokedynamic
WRIGHT STATE UNIVERSITY Structural Typing on the Java Virtual Machine with invokedynamic by Brian Diekelman A thesis submitted in partial fulfillment for the degree of Bachelor of Science in the Department
picojava TM : A Hardware Implementation of the Java Virtual Machine
picojava TM : A Hardware Implementation of the Java Virtual Machine Marc Tremblay and Michael O Connor Sun Microelectronics Slide 1 The Java picojava Synergy Java s origins lie in improving the consumer
A Comparison of Bug Finding Tools for Java
A Comparison of Bug Finding Tools for Java Nick Rutar Christian B. Almazan University of Maryland, College Park {rutar, almazan, jfoster}@cs.umd.edu Jeffrey S. Foster Abstract Bugs in software are costly
A Java Virtual Machine Architecture for Very Small Devices
A Java Virtual Machine Architecture for Very Small Devices Nik Shaylor Sun Microsystems Research Laboratories 2600 Casey Avenue Mountain View, CA 94043 USA [email protected] Douglas N. Simon Sun Microsystems
Java Language Tools COPYRIGHTED MATERIAL. Part 1. In this part...
Part 1 Java Language Tools This beginning, ground-level part presents reference information for setting up the Java development environment and for compiling and running Java programs. This includes downloading
Continuous Code-Quality Assurance with SAFE
Continuous Code-Quality Assurance with SAFE Emmanuel Geay Eran Yahav Stephen Fink IBM T.J. Watson Research Center {egeay,eyahav,sjfink}@us.ibm.com http://www.research.ibm.com/safe ABSTRACT This paper presents
Java SE 7 Programming
Oracle University Contact Us: 1.800.529.0165 Java SE 7 Programming Duration: 5 Days What you will learn This Java SE 7 Programming training explores the core Application Programming Interfaces (API) you'll
Java SE 7 Programming
Oracle University Contact Us: Local: 1800 103 4775 Intl: +91 80 4108 4709 Java SE 7 Programming Duration: 5 Days What you will learn This Java Programming training covers the core Application Programming
Monitoring Java enviroment / applications
Monitoring Java enviroment / applications Uroš Majcen [email protected] Java is Everywhere You Can Expect More. Java in Mars Rover With the help of Java Technology, and the Jet Propulsion Laboratory (JPL),
First Java Programs. V. Paúl Pauca. CSC 111D Fall, 2015. Department of Computer Science Wake Forest University. Introduction to Computer Science
First Java Programs V. Paúl Pauca Department of Computer Science Wake Forest University CSC 111D Fall, 2015 Hello World revisited / 8/23/15 The f i r s t o b l i g a t o r y Java program @author Paul Pauca
An Overview of Java. overview-1
An Overview of Java overview-1 Contents What is Java Major Java features Java virtual machine Java programming language Java class libraries (API) GUI Support in Java Networking and Threads in Java overview-2
Common Errors in C/C++ Code and Static Analysis
Common Errors in C/C++ Code and Static Analysis Red Hat Ondřej Vašík and Kamil Dudka 2011-02-17 Abstract Overview of common programming mistakes in the C/C++ code, and comparison of a few available static
CHAPTER 5 INTELLIGENT TECHNIQUES TO PREVENT SQL INJECTION ATTACKS
66 CHAPTER 5 INTELLIGENT TECHNIQUES TO PREVENT SQL INJECTION ATTACKS 5.1 INTRODUCTION In this research work, two new techniques have been proposed for addressing the problem of SQL injection attacks, one
CSC 8505 Handout : JVM & Jasmin
CSC 8505 Handout : JVM & Jasmin Note: This handout provides you with the basic information about JVM. Although we tried to be accurate about the description, there may be errors. Feel free to check your
Effective Java Programming. measurement as the basis
Effective Java Programming measurement as the basis Structure measurement as the basis benchmarking micro macro profiling why you should do this? profiling tools Motto "We should forget about small efficiencies,
Instrumenting Java bytecode
Instrumenting Java bytecode Seminar work for the Compilers-course, spring 2005 Jari Aarniala Department of Computer Science University of Helsinki, Finland [email protected] ABSTRACT Bytecode
JDK 1.5 Updates for Introduction to Java Programming with SUN ONE Studio 4
JDK 1.5 Updates for Introduction to Java Programming with SUN ONE Studio 4 NOTE: SUN ONE Studio is almost identical with NetBeans. NetBeans is open source and can be downloaded from www.netbeans.org. I
Iron Chef: John Henry Challenge
Iron Chef: John Henry Challenge Brian Chess Pravir Chandra Black Hat 3/27/2008 Amsterdam Sean Fay Jacob West Concept We love Iron Chef. We can t cook. Concept Compare tools and manual code review in head-tohead
SAF: Static Analysis Improved Fuzzing
The Interdisciplinary Center, Herzlia Efi Arazi School of Computer Science SAF: Static Analysis Improved Fuzzing M.Sc. Dissertation Submitted in Partial Fulfillment of the Requirements for the Degree of
TESTING WITH JUNIT. Lab 3 : Testing
TESTING WITH JUNIT Lab 3 : Testing Overview Testing with JUnit JUnit Basics Sample Test Case How To Write a Test Case Running Tests with JUnit JUnit plug-in for NetBeans Running Tests in NetBeans Testing
Application-only Call Graph Construction
Application-only Call Graph Construction Karim Ali and Ondřej Lhoták David R. Cheriton School of Computer Science, University of Waterloo Abstract. Since call graphs are an essential starting point for
Speculative Multithreading in a Java Virtual Machine
McGill University School of Computer Science Sable Research Group Speculative Multithreading in a Java Virtual Machine Sable Technical Report No. 2005-1 Christopher J.F. Pickett and Clark Verbrugge {cpicke,clump}@sable.mcgill.ca
TOOL EVALUATION REPORT: FORTIFY
TOOL EVALUATION REPORT: FORTIFY Derek D Souza, Yoon Phil Kim, Tim Kral, Tejas Ranade, Somesh Sasalatti ABOUT THE TOOL Background The tool that we have evaluated is the Fortify Source Code Analyzer (Fortify
Static Analysis Tools in Industry: Dispatches From the Front Line. Dr. Andy Chou Chief Scientist and Co-founder Coverity, Inc.
Static Analysis Tools in Industry: Dispatches From the Front Line Dr. Andy Chou Chief Scientist and Co-founder Coverity, Inc. Outline Things I know A little bit about Coverity Bug-Finding: Technology +
The Java Virtual Machine and Mobile Devices. John Buford, Ph.D. [email protected] Oct 2003 Presented to Gordon College CS 311
The Java Virtual Machine and Mobile Devices John Buford, Ph.D. [email protected] Oct 2003 Presented to Gordon College CS 311 Objectives Review virtual machine concept Introduce stack machine architecture
Checking Access to Protected Members in the Java Virtual Machine
Vol. 4, No. 8, 2005 Checking Access to Protected Members in the Java Virtual Machine Alessandro Coglio, Kestrel Institute, Palo Alto, California, USA This paper studies in detail how to correctly and efficiently
Java Interview Questions and Answers
1. What is the most important feature of Java? Java is a platform independent language. 2. What do you mean by platform independence? Platform independence means that we can write and compile the java
language 1 (source) compiler language 2 (target) Figure 1: Compiling a program
CS 2112 Lecture 27 Interpreters, compilers, and the Java Virtual Machine 1 May 2012 Lecturer: Andrew Myers 1 Interpreters vs. compilers There are two strategies for obtaining runnable code from a program
The Effectiveness of Automated Static Analysis Tools for Fault Detection and Refactoring Prediction
The Effectiveness of Automated Static Analysis Tools for Fault Detection and Refactoring Prediction Fadi Wedyan, Dalal Alrmuny, and James M. Bieman Colorado State University Computer Science Department
Modulo II Qualidade de Software com Maven
Modulo II Qualidade de Software com Maven Professor Ismael H F Santos [email protected] April 05 Prof. Ismael H. F. Santos - [email protected] 1 Bibliografia Linguagem de Programação JAVA
Memories of Bug Fixes
Sunghun Kim Department of Computer Science University of California, Santa Cruz Santa Cruz, CA, USA [email protected] Memories of Bug Fixes Kai Pan Department of Computer Science University of California,
CS 111 Classes I 1. Software Organization View to this point:
CS 111 Classes I 1 Software Organization View to this point: Data Objects and primitive types Primitive types operators (+, /,,*, %). int, float, double, char, boolean Memory location holds the data Objects
Linux Kernel. Security Report
Linux Kernel Security Report September 25 Authors: Andy Chou, Bryan Fulton and Seth Hallem Coverity has combined two years of analysis work carried out in a commercial setting at Coverity with four years
STATIC CODE ANALYSIS Alexandru G. Bardas 1
Abstract STATIC CODE ANALYSIS Alexandru G. Bardas 1 A lot of the defects that are present in a program are not visible to the compiler. Static code analysis is a way to find bugs and reduce the defects
A Brief Introduction to Static Analysis
A Brief Introduction to Static Analysis Sam Blackshear March 13, 2012 Outline A theoretical problem and how to ignore it An example static analysis What is static analysis used for? Commercial successes
Platform Independent Dynamic Java Virtual Machine Analysis: the Java Grande Forum Benchmark Suite
Platform Independent Dynamic Java Virtual Machine Analysis: the Java Grande Forum Benchmark Suite Charles Daly Computer Applications, Dublin City University, Dublin 9, Ireland. Jane Horgan Computer Applications,
Under the Hood: The Java Virtual Machine. Lecture 24 CS 2110 Fall 2011
Under the Hood: The Java Virtual Machine Lecture 24 CS 2110 Fall 2011 Compiling for Different Platforms Program written in some high-level language (C, Fortran, ML,...) Compiled to intermediate form Optimized
The Java Virtual Machine Specification. Java SE 8 Edition
The Java Virtual Machine Specification Java SE 8 Edition This page intentionally left blank The Java Virtual Machine Specification Java SE 8 Edition Tim Lindholm Frank Yellin Gilad Bracha Alex Buckley
Java Mission Control
Java Mission Control Harald Bräuning Resources Main Resource: Java Mission Control Tutorial by Marcus Hirt http://hirt.se/downloads/oracle/jmc_tutorial.zip includes sample projects! Local copy: /common/fesa/jmcexamples/jmc_tutorial.zip
Habanero Extreme Scale Software Research Project
Habanero Extreme Scale Software Research Project Comp215: Java Method Dispatch Zoran Budimlić (Rice University) Always remember that you are absolutely unique. Just like everyone else. - Margaret Mead
KAIST Cyber Security Research Center SAR(Security Analysis Report) Date. August 31, Modified
Document # Type Attack Trend Technical Analysis Specialty Analysis Title Date Modified Java Applet Vulnerability Analysis (CVE-2012-4681) August 25, KAIST Graduate School 2012 of Information Security Author
Deadlock Victim. dimanche 6 mai 12
Deadlock Victim by Dr Heinz Kabutz && Olivier Croisier The Java Specialists Newsletter && The Coder's Breakfast [email protected] && [email protected] 1 You discover a race condition 2
The Darwin Game 2.0 Programming Guide
The Darwin Game 2.0 Programming Guide In The Darwin Game creatures compete to control maps and race through mazes. You play by programming your own species of creature in Java, which then acts autonomously
Java Virtual Machine, JVM
Java Virtual Machine, JVM a Teodor Rus [email protected] The University of Iowa, Department of Computer Science a These slides have been developed by Teodor Rus. They are copyrighted materials and may not
Programming by Contract. Programming by Contract: Motivation. Programming by Contract: Preconditions and Postconditions
COMP209 Object Oriented Programming Designing Classes 2 Mark Hall Programming by Contract (adapted from slides by Mark Utting) Preconditions Postconditions Class invariants Programming by Contract An agreement
Evaluation of AgitarOne
Carnegie Mellon University, School of Computer Science Master of Software Engineering Evaluation of AgitarOne Analysis of Software Artifacts Final Project Report April 24, 2007 Edited for public release
No no-argument constructor. No default constructor found
Every software developer deals with bugs. The really tough bugs aren t detected by the compiler. Nasty bugs manifest themselves only when executed at runtime. Here is a list of the top ten difficult and
IMPROVING VULNERABILITY MANAGEMENT EFFECTIVENESS WITH APPLICATION SECURITY MONITORING
IMPROVING VULNERABILITY MANAGEMENT EFFECTIVENESS WITH APPLICATION SECURITY How runtime application security monitoring helps enterprises make smarter decisions on remediation 2 ABSTRACT Enterprises today
Understanding and Detec.ng Real- World Performance Bugs
Understanding and Detec.ng Real- World Performance Bugs Gouliang Jin, Linhai Song, Xiaoming Shi, Joel Scherpelz, and Shan Lu Presented by Cindy Rubio- González Feb 10 th, 2015 Mo.va.on Performance bugs
Development Testing for Agile Environments
Development Testing for Agile Environments November 2011 The Pressure Is On More than ever before, companies are being asked to do things faster. They need to get products to market faster to remain competitive
Chapter 1 Java Program Design and Development
presentation slides for JAVA, JAVA, JAVA Object-Oriented Problem Solving Third Edition Ralph Morelli Ralph Walde Trinity College Hartford, CT published by Prentice Hall Java, Java, Java Object Oriented
Virtual Machine Learning: Thinking Like a Computer Architect
Virtual Machine Learning: Thinking Like a Computer Architect Michael Hind IBM T.J. Watson Research Center March 21, 2005 CGO 05 Keynote 2005 IBM Corporation What is this talk about? Virtual Machines? 2
What s Cool in the SAP JVM (CON3243)
What s Cool in the SAP JVM (CON3243) Volker Simonis, SAP SE September, 2014 Public Agenda SAP JVM Supportability SAP JVM Profiler SAP JVM Debugger 2014 SAP SE. All rights reserved. Public 2 SAP JVM SAP
Software Reliability Estimation Based on Static Error Detection
7 th Central and Eastern European Software Engineering Conference in Russia - CEE-SECR 2011 October 31 November 3, Moscow Software Reliability Estimation Based on Static M. Moiseev, M. Glukhikh, A. Karpenko,
Advanced Java Client API
2012 coreservlets.com and Dima May Advanced Java Client API Advanced Topics Originals of slides and source code for examples: http://www.coreservlets.com/hadoop-tutorial/ Also see the customized Hadoop
NetBeans 6.5.1 and GlassFish v 2.1 Creating a Healthcare Facility Visual Web Application
NetBeans 6.5.1 and GlassFish v 2.1 Creating a Healthcare Facility Visual Web Application [email protected] June 2009 Introduction In some views SOA is represented as a series of 4 layers: Presentation
Comparing the Effectiveness of Penetration Testing and Static Code Analysis
Comparing the Effectiveness of Penetration Testing and Static Code Analysis Detection of SQL Injection Vulnerabilities in Web Services PRDC 2009 Nuno Antunes, [email protected], [email protected] University
VisualVM: Integrated and Extensible Troubleshooting Tool for the Java Platform
VisualVM: Integrated and Extensible Troubleshooting Tool for the Java Platform Tomáš Hůrka, Sun Microsystems Inc. Luis-Miguel Alventosa, Sun Microsystems Inc. BOF-5223 Introduce VisualVM - new tool that
CSCI E 98: Managed Environments for the Execution of Programs
CSCI E 98: Managed Environments for the Execution of Programs Draft Syllabus Instructor Phil McGachey, PhD Class Time: Mondays beginning Sept. 8, 5:30-7:30 pm Location: 1 Story Street, Room 304. Office
Improving Software Quality with the Continuous Integration Server Hudson. Dr. Ullrich Hafner Avaloq Evolution AG 8911
Improving Software Quality with the Continuous Integration Server Hudson Dr. Ullrich Hafner Avaloq Evolution AG 8911 AGENDA 2 > INTRODUCTION TO CI AND HUDSON > USING STATIC ANALYSIS IN PROJECTS > DEMO
Static Code Analysis Procedures in the Development Cycle
Static Code Analysis Procedures in the Development Cycle Tools, Technology, and Process in Engineering at Microsoft Mooly Beeri Microsoft Haifa R&D Center Agenda Static code analysis tools PREfix and PREfast
Security Monitor Inlining for Multithreaded Java
Security Monitor Inlining for Multithreaded Java Mads Dam 1, Bart Jacobs 2, Andreas Lundblad 1, and Frank Piessens 2 1 KTH, Sweden {mfd,landreas}@kth.se 2 K.U.Leuven, Belgium {bartj,frank}@cs.kuleuven.be
Java Power Tools. John Ferguson Smart. ULB Darmstadt 1 PI. O'REILLY 4 Beijing Cambridge Farnham Koln Paris Sebastopol Taipei Tokyo
Java Power Tools John Ferguson Smart ULB Darmstadt 1 PI O'REILLY 4 Beijing Cambridge Farnham Koln Paris Sebastopol Taipei Tokyo Table of Contents Foreword Preface Introduction xvii xix xxxiii Parti. Build
Java Memory Model: Content
Java Memory Model: Content Memory Models Double Checked Locking Problem Java Memory Model: Happens Before Relation Volatile: in depth 16 March 2012 1 Java Memory Model JMM specifies guarantees given by
Coding in Industry. David Berry Director of Engineering Qualcomm Cambridge Ltd
Coding in Industry David Berry Director of Engineering Qualcomm Cambridge Ltd Agenda Potted history Basic Tools of the Trade Test Driven Development Code Quality Performance Open Source 2 Potted History
The Context of Software Development
1 Chapter 1 The Context of Software Development A computer program, from one perspective, is a sequence of instructions that dictate the flow of electrical impulses within a computer system. These impulses
Replication on Virtual Machines
Replication on Virtual Machines Siggi Cherem CS 717 November 23rd, 2004 Outline 1 Introduction The Java Virtual Machine 2 Napper, Alvisi, Vin - DSN 2003 Introduction JVM as state machine Addressing non-determinism
Static Analysis. Find the Bug! 15-654: Analysis of Software Artifacts. Jonathan Aldrich. disable interrupts. ERROR: returning with interrupts disabled
Static Analysis 15-654: Analysis of Software Artifacts Jonathan Aldrich 1 Find the Bug! Source: Engler et al., Checking System Rules Using System-Specific, Programmer-Written Compiler Extensions, OSDI
