SlideShare uma empresa Scribd logo
1 de 13
Baixar para ler offline
Rethinking Soot for Summary-Based Whole-
             Program Analysis

    Dacong Yan1, Guoqing Xu2, Atanas Rountev1
                       1 Ohio        State University
                 2 University           of California, Irvine



       PRESTO: Program Analyses and Software Tools Research Group, Ohio State University
Overview
    • Programs are built with reusable components
      – Standard libraries in Java, C++, C#
      – Domain-specific libraries and frameworks
    • Whole-program analysis
      – Analysis of both application and library code
      – Methods are analyzed under different contexts
    • Summary-based analysis
      – Pre-analysis of library code (summary generation)
      – Reuse result of pre-analysis (summary application)
    • Challenges
      – Carefully designed abstractions and algorithms
2
      – Infrastructure for summary generation and application
Case Study: An Alias Analysis [ISSTA’11]
    m(a) {
      c = new …; // o1
      a.f = c;
      return c.g;
    }

    d = new …; // o2
    b = m(d); // call m




3
Case Study: An Alias Analysis [ISSTA’11]
    m(a) {                               f
                            a      sa            o1    c
      c = new …; // o1                       g
      a.f = c;
                          entrym   ret           sf
      return c.g;
                                                      exitm
    }
                                   o2            d
    d = new …; // o2
                                     b           sm
    b = m(d); // call m




4
Case Study: An Alias Analysis [ISSTA’11]
    m(a) {                                 f
                            a      sa              o1    c
      c = new …; // o1                         g
      a.f = c;
                          entrym   ret             sf
      return c.g;
                                                        exitm
    }
                                   o2              d
    d = new …; // o2
                                       b           sm
    b = m(d); // call m



                          b alias? d
5
Case Study: An Alias Analysis [ISSTA’11]
    m(a) {                                 f
                            a      sa              o1    c
      c = new …; // o1                         g
      a.f = c;
                          entrym   ret             sf
      return c.g;
                                                        exitm
    }
                                   o2              d
    d = new …; // o2
                                       b           sm
    b = m(d); // call m



                          b alias? d
6
Case Study: An Alias Analysis [ISSTA’11]
    m(a) {                               f
                            a      sa            o1    c
      c = new …; // o1                       g
      a.f = c;
                          entrym   ret           sf
      return c.g;
                                                      exitm
    }
                                   o2            d
    d = new …; // o2
                                     b           sm
    b = m(d); // call m




7
Case Study: An Alias Analysis [ISSTA’11]
    m(a) {                                    f
                            a        sa               o1    c
      c = new …; // o1                            g
      a.f = c;
                          entrym     ret              sf
      return c.g;
                                                           exitm
    }
                                     o2               d
    d = new …; // o2
                                       b              sm
    b = m(d); // call m


                                       f, g
               summary(m):      sa                sg
8
Experimental Evaluation
    • 19 Java programs
      – For all programs, more than 50% of nodes in the call
        graph are methods in the Java standard library
      – For most programs, the percentage exceeds 80%
    • Two experiments
      – Summary-based construction of program
        representation
      – Summary-based computation of graph reachability
    • Results
      – Significant potential savings in analysis running time
      – Additional savings limited by infrastructure

9
Discussion
 • Goal: support summary-based analysis in Soot
 • Problems with ad-hoc extensions
     – Difficulty in code maintenance
     – Difficulty in comparing analyses
     – Limited benefits in summarization
 • Issues to consider
     – Configuration mechanisms
     – Management of summary information
     – Verification of summary information



10
Discussion
 • Configuration mechanisms
     – Customization to allow summary-based analysis
     – Dependence between analyses
 • Management of summary information
     – Unified summary APIs
     – Techniques of data structure persistence
     – Mapping back to program entities
 • Verification of summary information
     – Consistency between summary and Jimple
     – Code changes


11
Conclusion
 • Case study on an alias analysis
 • Potential savings in analysis running time with
   summarization
 • Discussion on supporting summary-based analysis
     – Configuration mechanisms
     – Management of summary information
     – Verification of summary information




12
Thank you


13

Mais conteúdo relacionado

Mais procurados

Python交流
Python交流Python交流
Python交流
Qing Feng
 
Csc1100 lecture03 ch03-pt1-s14
Csc1100 lecture03 ch03-pt1-s14Csc1100 lecture03 ch03-pt1-s14
Csc1100 lecture03 ch03-pt1-s14
IIUM
 
Csc1100 lecture03 ch03-pt1-s14
Csc1100 lecture03 ch03-pt1-s14Csc1100 lecture03 ch03-pt1-s14
Csc1100 lecture03 ch03-pt1-s14
IIUM
 
CL metaprogramming
CL metaprogrammingCL metaprogramming
CL metaprogramming
dudarev
 
A1 spyder variables_operators_nptel_pds1_sol
A1 spyder variables_operators_nptel_pds1_solA1 spyder variables_operators_nptel_pds1_sol
A1 spyder variables_operators_nptel_pds1_sol
malasumathi
 
Lisp programming
Lisp programmingLisp programming
Lisp programming
ilias ahmed
 
An example of bubble sort written in c
An example of bubble sort written in cAn example of bubble sort written in c
An example of bubble sort written in c
Sumedha
 

Mais procurados (20)

Scope and closures
Scope and closuresScope and closures
Scope and closures
 
Module2
Module2Module2
Module2
 
Python交流
Python交流Python交流
Python交流
 
Perimeter
PerimeterPerimeter
Perimeter
 
Roslyn: el futuro de C#
Roslyn: el futuro de C#Roslyn: el futuro de C#
Roslyn: el futuro de C#
 
R/C++ talk at earl 2014
R/C++ talk at earl 2014R/C++ talk at earl 2014
R/C++ talk at earl 2014
 
Csc1100 lecture03 ch03-pt1-s14
Csc1100 lecture03 ch03-pt1-s14Csc1100 lecture03 ch03-pt1-s14
Csc1100 lecture03 ch03-pt1-s14
 
Csc1100 lecture03 ch03-pt1-s14
Csc1100 lecture03 ch03-pt1-s14Csc1100 lecture03 ch03-pt1-s14
Csc1100 lecture03 ch03-pt1-s14
 
Scheme 核心概念(一)
Scheme 核心概念(一)Scheme 核心概念(一)
Scheme 核心概念(一)
 
[C++ korea] effective modern c++ study item 3 understand decltype +이동우
[C++ korea] effective modern c++ study   item 3 understand decltype +이동우[C++ korea] effective modern c++ study   item 3 understand decltype +이동우
[C++ korea] effective modern c++ study item 3 understand decltype +이동우
 
Loops
LoopsLoops
Loops
 
Tail Recursion in data structure
Tail Recursion in data structureTail Recursion in data structure
Tail Recursion in data structure
 
CL metaprogramming
CL metaprogrammingCL metaprogramming
CL metaprogramming
 
Removal Of Recursion
Removal Of RecursionRemoval Of Recursion
Removal Of Recursion
 
Open GL Tutorial10
Open GL Tutorial10Open GL Tutorial10
Open GL Tutorial10
 
A1 spyder variables_operators_nptel_pds1_sol
A1 spyder variables_operators_nptel_pds1_solA1 spyder variables_operators_nptel_pds1_sol
A1 spyder variables_operators_nptel_pds1_sol
 
Lisp programming
Lisp programmingLisp programming
Lisp programming
 
An example of bubble sort written in c
An example of bubble sort written in cAn example of bubble sort written in c
An example of bubble sort written in c
 
A* (aster) Search Algorithm
A* (aster) Search AlgorithmA* (aster) Search Algorithm
A* (aster) Search Algorithm
 
Graph theory basics
Graph theory basicsGraph theory basics
Graph theory basics
 

Mais de Dacong (Tony) Yan

Static Reference Analysis for GUI Objects in Android Software
Static Reference Analysis for GUI Objects in Android SoftwareStatic Reference Analysis for GUI Objects in Android Software
Static Reference Analysis for GUI Objects in Android Software
Dacong (Tony) Yan
 
LeakChecker: Practical Static Memory Leak Detection for Managed Languages
LeakChecker: Practical Static Memory Leak Detection for Managed LanguagesLeakChecker: Practical Static Memory Leak Detection for Managed Languages
LeakChecker: Practical Static Memory Leak Detection for Managed Languages
Dacong (Tony) Yan
 
Systematic Testing for Resource Leaks in Android Applications
Systematic Testing for Resource Leaks in Android ApplicationsSystematic Testing for Resource Leaks in Android Applications
Systematic Testing for Resource Leaks in Android Applications
Dacong (Tony) Yan
 
A Toy Virtual Machine Project
A Toy Virtual Machine ProjectA Toy Virtual Machine Project
A Toy Virtual Machine Project
Dacong (Tony) Yan
 

Mais de Dacong (Tony) Yan (9)

Static Reference Analysis for GUI Objects in Android Software
Static Reference Analysis for GUI Objects in Android SoftwareStatic Reference Analysis for GUI Objects in Android Software
Static Reference Analysis for GUI Objects in Android Software
 
LeakChecker: Practical Static Memory Leak Detection for Managed Languages
LeakChecker: Practical Static Memory Leak Detection for Managed LanguagesLeakChecker: Practical Static Memory Leak Detection for Managed Languages
LeakChecker: Practical Static Memory Leak Detection for Managed Languages
 
Systematic Testing for Resource Leaks in Android Applications
Systematic Testing for Resource Leaks in Android ApplicationsSystematic Testing for Resource Leaks in Android Applications
Systematic Testing for Resource Leaks in Android Applications
 
SherLog: Error Diagnosis by Connecting Clues from Run-time Logs
SherLog: Error Diagnosis by Connecting Clues from Run-time LogsSherLog: Error Diagnosis by Connecting Clues from Run-time Logs
SherLog: Error Diagnosis by Connecting Clues from Run-time Logs
 
Efficient Diversity-Aware Search
Efficient Diversity-Aware SearchEfficient Diversity-Aware Search
Efficient Diversity-Aware Search
 
AVIO class present
AVIO class presentAVIO class present
AVIO class present
 
Uncovering Performance Problems in Java Applications with Reference Propagati...
Uncovering Performance Problems in Java Applications with Reference Propagati...Uncovering Performance Problems in Java Applications with Reference Propagati...
Uncovering Performance Problems in Java Applications with Reference Propagati...
 
A Toy Virtual Machine Project
A Toy Virtual Machine ProjectA Toy Virtual Machine Project
A Toy Virtual Machine Project
 
Scope vs YSmart
Scope vs YSmartScope vs YSmart
Scope vs YSmart
 

Último

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Último (20)

Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 

Rethinking Soot for Summary-Based Whole-Program Analysis

  • 1. Rethinking Soot for Summary-Based Whole- Program Analysis Dacong Yan1, Guoqing Xu2, Atanas Rountev1 1 Ohio State University 2 University of California, Irvine PRESTO: Program Analyses and Software Tools Research Group, Ohio State University
  • 2. Overview • Programs are built with reusable components – Standard libraries in Java, C++, C# – Domain-specific libraries and frameworks • Whole-program analysis – Analysis of both application and library code – Methods are analyzed under different contexts • Summary-based analysis – Pre-analysis of library code (summary generation) – Reuse result of pre-analysis (summary application) • Challenges – Carefully designed abstractions and algorithms 2 – Infrastructure for summary generation and application
  • 3. Case Study: An Alias Analysis [ISSTA’11] m(a) { c = new …; // o1 a.f = c; return c.g; } d = new …; // o2 b = m(d); // call m 3
  • 4. Case Study: An Alias Analysis [ISSTA’11] m(a) { f a sa o1 c c = new …; // o1 g a.f = c; entrym ret sf return c.g; exitm } o2 d d = new …; // o2 b sm b = m(d); // call m 4
  • 5. Case Study: An Alias Analysis [ISSTA’11] m(a) { f a sa o1 c c = new …; // o1 g a.f = c; entrym ret sf return c.g; exitm } o2 d d = new …; // o2 b sm b = m(d); // call m b alias? d 5
  • 6. Case Study: An Alias Analysis [ISSTA’11] m(a) { f a sa o1 c c = new …; // o1 g a.f = c; entrym ret sf return c.g; exitm } o2 d d = new …; // o2 b sm b = m(d); // call m b alias? d 6
  • 7. Case Study: An Alias Analysis [ISSTA’11] m(a) { f a sa o1 c c = new …; // o1 g a.f = c; entrym ret sf return c.g; exitm } o2 d d = new …; // o2 b sm b = m(d); // call m 7
  • 8. Case Study: An Alias Analysis [ISSTA’11] m(a) { f a sa o1 c c = new …; // o1 g a.f = c; entrym ret sf return c.g; exitm } o2 d d = new …; // o2 b sm b = m(d); // call m f, g summary(m): sa sg 8
  • 9. Experimental Evaluation • 19 Java programs – For all programs, more than 50% of nodes in the call graph are methods in the Java standard library – For most programs, the percentage exceeds 80% • Two experiments – Summary-based construction of program representation – Summary-based computation of graph reachability • Results – Significant potential savings in analysis running time – Additional savings limited by infrastructure 9
  • 10. Discussion • Goal: support summary-based analysis in Soot • Problems with ad-hoc extensions – Difficulty in code maintenance – Difficulty in comparing analyses – Limited benefits in summarization • Issues to consider – Configuration mechanisms – Management of summary information – Verification of summary information 10
  • 11. Discussion • Configuration mechanisms – Customization to allow summary-based analysis – Dependence between analyses • Management of summary information – Unified summary APIs – Techniques of data structure persistence – Mapping back to program entities • Verification of summary information – Consistency between summary and Jimple – Code changes 11
  • 12. Conclusion • Case study on an alias analysis • Potential savings in analysis running time with summarization • Discussion on supporting summary-based analysis – Configuration mechanisms – Management of summary information – Verification of summary information 12