Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/1730874.1730880acmotherconferencesArticle/Chapter ViewAbstractPublication PagesisecConference Proceedingsconference-collections
research-article

A lightweight approach for program analysis and debugging

Published: 25 February 2010 Publication History

Abstract

Program slicing techniques like static, dynamic and hybrid slicing are considered to be an effective aid in the areas of program analysis and debugging. The performance parameters of these techniques such as precision and execution overhead determine their efficiency and applicability. In the context of debugging a few bugs, the existing dynamic and hybrid approaches tend to be expensive in terms of high runtime overhead while static slicing approaches fail to be precise.
In this paper, we present a tool called JDAS to simplify the tedious task of debugging. The tool provides an intuitive way for the user to specify a bug and helps in efficient debugging by providing only the relevant information related to the bug being analyzed. We propose a lightweight approach for program analysis and debugging which is effective when the bugs to be analyzed are few. We make use of static slicing, which reduces the runtime cost and also helps in computing all the essential information including those which are not present in a dynamic slice as illustrated by the concept of relevant slicing. We harness the power of dynamic aspect oriented programming for effective tracing and thereby overcome the problem of imprecision in the slice result generated by static slicing. We introduce line number based pointcuts for efficient tracing.

References

[1]
Agrawal, H., Horgan, J., Krauser, E., and London, S.: "Incremental regression testing", International Conference on Software Maintenance (ICSM), pp. 348--357, 1993.
[2]
AspectWerkz website: http://aspectwerkz.codehaus.org
[3]
B. Korel and J. Laski: "Dynamic program slicing", Information Processing Letters. 29(3): 155--163, October 1988.
[4]
BCEL website: http://jakarta.apache.org/bcel/
[5]
Dynamic Aspects website: http://dynamicaspects.sourceforge.net/
[6]
Frank Tip: "A survey of program slicing techniques", Journal of Programming Languages, vol. 3, no. 3, pp. 121--189, 1995.
[7]
G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C.V. Lopes, J.-M. Loingtier and J. Irwin: "Aspect-Oriented Programming", Proceedings of the 11th European conference on Object Oriented Programming (ECOOP'97), pages 220--242.
[8]
G. Kiczales, E. Hilsdale, J. Hugunin, M. Kersten, J. Palm, W.G. Griswold: "An overview of AspectJ", In Proceedings of ECOOP '01, p. 327--353, Budapest, Hungary, June 18-22, 2001.
[9]
Gyimóthy, T., Beszédes, A., and Forgács, I., "An efficient relevant slicing method for debugging" in 7th ACM SIGSOFT International Symposium on Foundations of Software Engineering, pp. 303--321, 1999.
[10]
Indus website: http://indus.projects.cis.ksu.edu
[11]
James Gosling, Bill Joy, Guy Steele, Gilad Bracha: "Java Language Specification", Third Edition, 2005.
[12]
JSlice website: http://jslice.sourceforge.net
[13]
Ko, A.J. and Myers, B.A.: "Debugging Reinvented: Asking and Answering Why and Why Not Questions about Program Behavior", International Conference on Software Engineering (ICSE), Leipzig, 2008
[14]
M. Kamkar: "Inter Procedural Dynamic Slicing with Applications to Debugging and Testing", PhD thesis, Linkoping University, Sweden, 1993.
[15]
M. Weiser: "Program Slicing", Proceedings of the Fifth International Conference on Software Engineering, pp. 439--449, 1981.
[16]
M. Weiser: "Programmers use slices when debugging", CACM, 25(7):446--452, July 1982.
[17]
Marc Eaddy, Alfred Aho: "Statement Annotations for Fine-Grained Advising", Reflection, AOP and Meta-Data for Software Evolution (RAM-SE 2006) of the 8th Asia Pacific Software Engineering Conference, pp.273--280(2001).
[18]
Rajiv Gupta, Mary Lou Soffa, John Howard: "Hybrid Slicing: Integrating Dynamic Information with Static Analysis", ACM Transactions on Software Engineering and Methodology, Vol. 6, No. 4, October 1997.
[19]
Reishi Yokomori, Takashi Ishio, Tetsuo Yamamoto Makoto Matsushita, Shinji Kusumoto, Katsuro Inoue: Aspect-Based Slicing System ADAS and Ranked-Component Search System SPARS-J, International Conference on Software Engineering(ICSE'03).
[20]
Sable Group: Soot, a Java Optimization Framework, website: http://www.sable.mcgill.ca/soot/
[21]
Takashi Ishio, Shinji Kusumoto, Katsuro Inoue: "Program Slicing Tool for Effective Software Evolution Using Aspect-Oriented Technique", Proceedings of the Sixth International Workshop on Principles of Software Evolution (IWPSE'03), 2003.
[22]
Venkatesh Prasad Ranganath and John Hatcliff: "Slicing Concurrent Java Programs using Indus and Kaveri", International Journal on Software Tools for Technology Transfer (STTT) dedicated to the best papers from FASE 2004-05 (2007).
[23]
Wang T.: "Post-Mortem dynamic analysis for software debugging", PhD Thesis, National University of Singapore, 2007
[24]
Wang T. & Roychoudhury A.: "Using compressed bytecode traces for slicing Java programs", International Conference on Software Engineering 2004.
[25]
Xiangyu Zhang, Rajiv Gupta: "Cost Effective Dynamic Program Slicing", Programming Language Design and Implementation (PLDI'04), June 9-11, 2004

Cited By

View all
  • (2010)A meta-aspect protocol for developing dynamic analysesProceedings of the First international conference on Runtime verification10.5555/1939399.1939415(153-167)Online publication date: 1-Nov-2010

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Other conferences
ISEC '10: Proceedings of the 3rd India software engineering conference
February 2010
194 pages
ISBN:9781605589220
DOI:10.1145/1730874
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

  • CSI SIGSE: ACM special interest group on software engineering of CSI

In-Cooperation

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 25 February 2010

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. java debugger using aspects and slicing
  2. jdas
  3. line number pointcuts
  4. selective tracing

Qualifiers

  • Research-article

Conference

ISEC '10
Sponsor:
  • CSI SIGSE
ISEC '10: India Software Engineering Conference
February 25 - 27, 2010
Mysore, India

Acceptance Rates

Overall Acceptance Rate 76 of 315 submissions, 24%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)5
  • Downloads (Last 6 weeks)0
Reflects downloads up to 25 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2010)A meta-aspect protocol for developing dynamic analysesProceedings of the First international conference on Runtime verification10.5555/1939399.1939415(153-167)Online publication date: 1-Nov-2010

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media