Runtime Instrumentation for Precise Flow-Sensitive Type Analysis

We describe a combination of runtime information and static analysis for checking properties of complex and configurable systems. The basic idea of our approach is to 1) let the program execute and thereby read the important dynamic configuration data, then 2) invoke static analysis from this runtim...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
Hauptverfasser: Kneuss, Etienne, Suter, Philippe, Kuncak, Viktor
Format: Web Resource
Sprache:eng
Online-Zugang:Volltext bestellen
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
container_end_page
container_issue
container_start_page
container_title
container_volume
creator Kneuss, Etienne
Suter, Philippe
Kuncak, Viktor
description We describe a combination of runtime information and static analysis for checking properties of complex and configurable systems. The basic idea of our approach is to 1) let the program execute and thereby read the important dynamic configuration data, then 2) invoke static analysis from this runtime state to detect possible errors that can happen in the continued execution. This approach improves analysis precision, particularly with respect to types of global variables and nested data structures. It also enables the resolution of modules that are loaded based on dynamically computed information. We describe an implementation of this approach in a tool that statically computes possible types of variables in PHP applications, including detailed types of nested maps (arrays). PHP is a dynamically typed language; PHP programs extensively use nested value maps, as well as ’include’ directives whose arguments are dynamically computed file names. We have applied our analysis tool to over 50’000 lines of PHP code, including the popular DokuWiki software, which has a plug-in architecture. The analysis identified 200 problems in the code and in the type hints of the original source code base. Some of these problems can cause exploits, infinite loops, and crashes. Our experiments show that dynamic information simplifies the development of the analysis and decreases the number of false alarms compared to a purely static analysis approach.
doi_str_mv 10.1007/978-3-642-16612-9_23
format Web Resource
fullrecord <record><control><sourceid>epfl_F1K</sourceid><recordid>TN_cdi_epfl_infoscience_oai_infoscience_tind_io_180828</recordid><sourceformat>XML</sourceformat><sourcesystem>PC</sourcesystem><sourcerecordid>oai_infoscience_tind_io_180828</sourcerecordid><originalsourceid>FETCH-epfl_infoscience_oai_infoscience_tind_io_1808283</originalsourceid><addsrcrecordid>eNqdy7EKwjAUQNEsDqL-gUN-IJq0kqabIhbdRN1DqC_wIH0pTar0711cXJ0uZ7iMrZXcKCmrbV0ZUQq9K4TSWhWitkU5Z_vbSBk74BdKeRg7oOwyRuI-Dvw6QIsJeBPiW9yBEmZ8AX9MPfADuTAlTEs28y4kWH27YLo5PY5nAb0PFsnH1CJQCzY6_HFGelqMVhlpClP-PX4AbhhKog</addsrcrecordid><sourcetype>Institutional Repository</sourcetype><iscdi>true</iscdi><recordtype>web_resource</recordtype></control><display><type>web_resource</type><title>Runtime Instrumentation for Precise Flow-Sensitive Type Analysis</title><source>Infoscience: EPF Lausanne</source><creator>Kneuss, Etienne ; Suter, Philippe ; Kuncak, Viktor</creator><creatorcontrib>Kneuss, Etienne ; Suter, Philippe ; Kuncak, Viktor</creatorcontrib><description>We describe a combination of runtime information and static analysis for checking properties of complex and configurable systems. The basic idea of our approach is to 1) let the program execute and thereby read the important dynamic configuration data, then 2) invoke static analysis from this runtime state to detect possible errors that can happen in the continued execution. This approach improves analysis precision, particularly with respect to types of global variables and nested data structures. It also enables the resolution of modules that are loaded based on dynamically computed information. We describe an implementation of this approach in a tool that statically computes possible types of variables in PHP applications, including detailed types of nested maps (arrays). PHP is a dynamically typed language; PHP programs extensively use nested value maps, as well as ’include’ directives whose arguments are dynamically computed file names. We have applied our analysis tool to over 50’000 lines of PHP code, including the popular DokuWiki software, which has a plug-in architecture. The analysis identified 200 problems in the code and in the type hints of the original source code base. Some of these problems can cause exploits, infinite loops, and crashes. Our experiments show that dynamic information simplifies the development of the analysis and decreases the number of false alarms compared to a purely static analysis approach.</description><identifier>DOI: 10.1007/978-3-642-16612-9_23</identifier><language>eng</language><oa>free_for_read</oa><woscitedreferencessubscribed>false</woscitedreferencessubscribed></display><links><openurl>$$Topenurl_article</openurl><openurlfulltext>$$Topenurlfull_article</openurlfulltext><thumbnail>$$Tsyndetics_thumb_exl</thumbnail><link.rule.ids>315,780,27859</link.rule.ids><linktorsrc>$$Uhttp://infoscience.epfl.ch/record/180828$$EView_record_in_EPF_Lausanne$$FView_record_in_$$GEPF_Lausanne$$Hfree_for_read</linktorsrc></links><search><creatorcontrib>Kneuss, Etienne</creatorcontrib><creatorcontrib>Suter, Philippe</creatorcontrib><creatorcontrib>Kuncak, Viktor</creatorcontrib><title>Runtime Instrumentation for Precise Flow-Sensitive Type Analysis</title><description>We describe a combination of runtime information and static analysis for checking properties of complex and configurable systems. The basic idea of our approach is to 1) let the program execute and thereby read the important dynamic configuration data, then 2) invoke static analysis from this runtime state to detect possible errors that can happen in the continued execution. This approach improves analysis precision, particularly with respect to types of global variables and nested data structures. It also enables the resolution of modules that are loaded based on dynamically computed information. We describe an implementation of this approach in a tool that statically computes possible types of variables in PHP applications, including detailed types of nested maps (arrays). PHP is a dynamically typed language; PHP programs extensively use nested value maps, as well as ’include’ directives whose arguments are dynamically computed file names. We have applied our analysis tool to over 50’000 lines of PHP code, including the popular DokuWiki software, which has a plug-in architecture. The analysis identified 200 problems in the code and in the type hints of the original source code base. Some of these problems can cause exploits, infinite loops, and crashes. Our experiments show that dynamic information simplifies the development of the analysis and decreases the number of false alarms compared to a purely static analysis approach.</description><fulltext>true</fulltext><rsrctype>web_resource</rsrctype><recordtype>web_resource</recordtype><sourceid>F1K</sourceid><recordid>eNqdy7EKwjAUQNEsDqL-gUN-IJq0kqabIhbdRN1DqC_wIH0pTar0711cXJ0uZ7iMrZXcKCmrbV0ZUQq9K4TSWhWitkU5Z_vbSBk74BdKeRg7oOwyRuI-Dvw6QIsJeBPiW9yBEmZ8AX9MPfADuTAlTEs28y4kWH27YLo5PY5nAb0PFsnH1CJQCzY6_HFGelqMVhlpClP-PX4AbhhKog</recordid><creator>Kneuss, Etienne</creator><creator>Suter, Philippe</creator><creator>Kuncak, Viktor</creator><scope>F1K</scope></search><sort><title>Runtime Instrumentation for Precise Flow-Sensitive Type Analysis</title><author>Kneuss, Etienne ; Suter, Philippe ; Kuncak, Viktor</author></sort><facets><frbrtype>5</frbrtype><frbrgroupid>cdi_FETCH-epfl_infoscience_oai_infoscience_tind_io_1808283</frbrgroupid><rsrctype>web_resources</rsrctype><prefilter>web_resources</prefilter><language>eng</language><toplevel>online_resources</toplevel><creatorcontrib>Kneuss, Etienne</creatorcontrib><creatorcontrib>Suter, Philippe</creatorcontrib><creatorcontrib>Kuncak, Viktor</creatorcontrib><collection>Infoscience: EPF Lausanne</collection></facets><delivery><delcategory>Remote Search Resource</delcategory><fulltext>fulltext_linktorsrc</fulltext></delivery><addata><au>Kneuss, Etienne</au><au>Suter, Philippe</au><au>Kuncak, Viktor</au><format>book</format><genre>unknown</genre><ristype>GEN</ristype><btitle>Runtime Instrumentation for Precise Flow-Sensitive Type Analysis</btitle><abstract>We describe a combination of runtime information and static analysis for checking properties of complex and configurable systems. The basic idea of our approach is to 1) let the program execute and thereby read the important dynamic configuration data, then 2) invoke static analysis from this runtime state to detect possible errors that can happen in the continued execution. This approach improves analysis precision, particularly with respect to types of global variables and nested data structures. It also enables the resolution of modules that are loaded based on dynamically computed information. We describe an implementation of this approach in a tool that statically computes possible types of variables in PHP applications, including detailed types of nested maps (arrays). PHP is a dynamically typed language; PHP programs extensively use nested value maps, as well as ’include’ directives whose arguments are dynamically computed file names. We have applied our analysis tool to over 50’000 lines of PHP code, including the popular DokuWiki software, which has a plug-in architecture. The analysis identified 200 problems in the code and in the type hints of the original source code base. Some of these problems can cause exploits, infinite loops, and crashes. Our experiments show that dynamic information simplifies the development of the analysis and decreases the number of false alarms compared to a purely static analysis approach.</abstract><doi>10.1007/978-3-642-16612-9_23</doi><oa>free_for_read</oa></addata></record>
fulltext fulltext_linktorsrc
identifier DOI: 10.1007/978-3-642-16612-9_23
ispartof
issn
language eng
recordid cdi_epfl_infoscience_oai_infoscience_tind_io_180828
source Infoscience: EPF Lausanne
title Runtime Instrumentation for Precise Flow-Sensitive Type Analysis
url https://sfx.bib-bvb.de/sfx_tum?ctx_ver=Z39.88-2004&ctx_enc=info:ofi/enc:UTF-8&ctx_tim=2025-01-13T06%3A37%3A29IST&url_ver=Z39.88-2004&url_ctx_fmt=infofi/fmt:kev:mtx:ctx&rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Article-epfl_F1K&rft_val_fmt=info:ofi/fmt:kev:mtx:book&rft.genre=unknown&rft.btitle=Runtime%20Instrumentation%20for%20Precise%20Flow-Sensitive%20Type%20Analysis&rft.au=Kneuss,%20Etienne&rft_id=info:doi/10.1007/978-3-642-16612-9_23&rft_dat=%3Cepfl_F1K%3Eoai_infoscience_tind_io_180828%3C/epfl_F1K%3E%3Curl%3E%3C/url%3E&disable_directlink=true&sfx.directlink=off&sfx.report_link=0&rft_id=info:oai/&rft_id=info:pmid/&rfr_iscdi=true