Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/1085130.1085147acmconferencesArticle/Chapter ViewAbstractPublication PagesaadebugConference Proceedingsconference-collections
Article

Tdb: a source-level debugger for dynamically translated programs

Published: 19 September 2005 Publication History

Abstract

Debugging techniques have evolved over the years in response to changes in programming languages, implementation techniques, and user needs. A new type of implementation vehicle for software has emerged that, once again, requires new debugging techniques. Software dynamic translation (SDT) has received much attention due to compelling applications of the technology, including software security checking, binary translation, and dynamic optimization. Using SDT, program code changes dynamically, and thus, debugging techniques developed for statically generated code cannot be used to debug these applications. In this paper, we describe a new debug architecture for applications executing with SDT systems. The architecture provides features that create the illusion that the source program is being debugged, while allowing the SDT system to modify the executing code. We incorporated this architecture in a new tool, called tdb, that integrates a SDT system, Strata, with a widely used debugger, gdb. We evaluated tdb in the context of a code security checker. The results show that a dynami-cally translated program can be debugged at the source level and that the approach does not overly increase the run-time perfor-mance or memory demands of the debugger.

References

[1]
M. Arnold, S. Fink, D. Grove, M. Hind and P. Sweeney, "Adaptive optimization in the Jalapeño JVM", Conf. on Object-Oriented Programming, Systems, Languages and Applications, 8(10), pages 47--65, 2000.
[2]
V. Bala, E. Duesterwald, and S. Banerjia, "Dynamo: A transparent dynamic optimization system", Conf. on Programming Language Design and Implementation, 35(5), pages. 1--12, 2000.
[3]
G. Brooks, G. Hansen and S. Simmons, "A new approach to debugging optimized code", Conf. on Programming Language Design and Implementation, 27(7), pages 1--11, 1992.
[4]
D. Bruening, T. Garnett and S. Amarasinghe, "An infrastructure for adaptive dynamic optimization", Int'l. Symp. on Code Generation and Optimization, pages 265--275, 2003.
[5]
D. Bruening, S. Amarsinghe, "Maintaining consistency and bounding capacity of software code caches", Int'l. Symp. on Code Generation and Optimization, pages 74--85, 2005.
[6]
J. Choi and S. Min, "Race Frontier: Reproducing Data Races in Parallel-Program Debugging", ACM Symposium on Principles and Practice of Parallel Programming, 26(7), pages 145--154, 1991.
[7]
C. Cifuentes, B. Lewis and D. Ung, "Walkabout: A retar-getable dynamic binary translation framework", Workshop on Binary Translation, 2002.
[8]
R. Cmelik and D. Keppel, "Shade: A fast instruction-set simulator for execution profiling", Technical Report 93=06-06, University of Washington, 1993.
[9]
M. Copperman, "Debugging optimized code without being Misled", ACM Transactions on Programming Languages and Systems, 16(3), pages 387--427, 1994.
[10]
J. C. Dehnert, B. K. Grant, J. P. Banning, R. Johnson, T. Kistler, A. Klaiber, and J. Mattson, "The Transmeta Code Morphing Software: Using speculation, recovery, and adaptive retranslation to address real-life challenges", Int'l. Symp. on Code Optimization and Generation, pages 15--24, 2003.
[11]
G. Desoli, N. Mateev, E. Duesterwald, P. Faraboschi, and J. Fisher, "DELI: A new runtime control point", Int'l. Symp. on Microarchitecture, 40(6), pages 201--212, 2002.
[12]
K. Ebcioglu and E. Altman, "DAISY: Dynamic compilation for 100% architectural compatibility", Int'l. Symposium on Computer Architecture, 25(2), pages 26--37, 1997.
[13]
J. Hennessy, "Symbolic debugging of optimized code", ACM Transactions on Programming Languages and Systems, 4(3), pages 323--244, 1982.
[14]
U. Holzle, C. Chambers and D. Ungar, "Debugging opti-mized code with dynamic deoptimization", Conf. on Programming Language Design and Implementation, 27(7), pages 32--43, 1992.
[15]
C. Jaramillo, R. Gupta, and M. L. Soffa, "FULLDOC: A full reporting debugger for optimized code", Proc. of Static Analysis Symposium, vol. 1824, pages 240--259, 2000.
[16]
P. Kessler, "Fast breakpoints: Design and implementation", Conf. on Programming Language Design and Implementation, 25(6), pages 78--84, 1990.
[17]
V. Kiriansky, D. Bruening and S. Amarasinghe, "Secure execution via program shepherding", USENIX Security Symposium, pages 191--206, 2002.
[18]
B. P. Miller, M. D. Callaghan, J. M. Cargille, J. K. Holling-sworth, R. Irvin, K. Karavanic, K. Kunchithapadam, Tia Newhallt, "The Paradyn parallel performance measurement tools", IEEE Computer, 8(11), pages 37--46, 1995.
[19]
M. Prvulovic and J. Torrellas, "ReEnact: Using Thread-Level Speculation Mechanisms to Debug Data Races in Multithreaded Codes", Int'l. Symp. on Computer Architecture, 31(2), pages 110--121, June 2003.
[20]
N. Ramsey and D. Hanson, "A retargetable debugger", Conf. on Programming Language Design and Implementation, 27(7), pages 22--31, 1992.
[21]
K. Scott, N. Kumar, S. Veluswamy, B. Childers, J. Davidson, M. L. Soffa, "Reconfigurable and retargetable software dynamic translation", Int'l. Symp. on Code Generation and Optimization, pages 36--47, 2003.
[22]
K. Scott and J. Davidson, "Safe virtual execution using software dynamic translation", Annual Computer Security Applications Conference, page 209, 2002.
[23]
A. Srivastava and A. Edwards, "Vulcan: Binary transformation in a distributed environment", Microsoft Research, MSR-TR-2001-50, 2001.
[24]
R. M. Stallman and R. H. Pesch, "Using GDB: A guide to the GNU source-level debugger", GDB v4.0, Free Software Foundation, Cambridge, MA, 1991.
[25]
A. Tabatabai and T. Gross, "Source-level debugging of scalar optimized code", Conf. on Programming Language Design and Implementation, 31(5), pages 33--43, 1996.
[26]
A. Tabatabai, "Source-Level Debugging of Globally Optimized Code", PhD Dissertation, 1996.
[27]
C. Tice and S. Graham. "Optview: A new approach for examining optimized code", Workshop on Program Analysis For Software Tools and Engineering, 2000.
[28]
E. Witchel and M. Rosenblum, "Embra: Fast and flexible machine simulation", Conf. on Measurement and Modeling of Computer Systems, 24(1), pages 68--79, 1996.
[29]
L. Wu, R. Mirani, H. Patil, B. Olsen and W. Hwu, "A new framework for debugging globally optimized code", Conf. on Programming Language Design and Implementation, 34(5), pages 181--191, 1999.
[30]
M. Xu, R. Bodik, and M. Hill, "A "Flight Data Recorder" for Enabling Full-system Multiprocessor Deterministic Replay", Int'l. Symp. on Computer Architecture, 31(2), pages 122--135, 2003.
[31]
Java Platform Debugger Architecture, Sun Microsystems, http://java.sun.com/products/jpda/index.jsp, 2005.

Cited By

View all
  • (2012)Transparent dynamic instrumentationACM SIGPLAN Notices10.1145/2365864.215104347:7(133-144)Online publication date: 3-Mar-2012
  • (2012)Transparent dynamic instrumentationProceedings of the 8th ACM SIGPLAN/SIGOPS conference on Virtual Execution Environments10.1145/2151024.2151043(133-144)Online publication date: 3-Mar-2012
  • (2009)Enhancing source-level programming tools with an awareness of transparent program transformationsProceedings of the 24th ACM SIGPLAN conference on Object oriented programming systems languages and applications10.1145/1640089.1640112(301-320)Online publication date: 26-Oct-2009
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
AADEBUG'05: Proceedings of the sixth international symposium on Automated analysis-driven debugging
September 2005
172 pages
ISBN:1595930507
DOI:10.1145/1085130
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

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 19 September 2005

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. debugging
  2. dynamic binary translation
  3. dynamic instrumentation

Qualifiers

  • Article

Conference

AADEBUG05

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)1
  • Downloads (Last 6 weeks)0
Reflects downloads up to 08 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2012)Transparent dynamic instrumentationACM SIGPLAN Notices10.1145/2365864.215104347:7(133-144)Online publication date: 3-Mar-2012
  • (2012)Transparent dynamic instrumentationProceedings of the 8th ACM SIGPLAN/SIGOPS conference on Virtual Execution Environments10.1145/2151024.2151043(133-144)Online publication date: 3-Mar-2012
  • (2009)Enhancing source-level programming tools with an awareness of transparent program transformationsProceedings of the 24th ACM SIGPLAN conference on Object oriented programming systems languages and applications10.1145/1640089.1640112(301-320)Online publication date: 26-Oct-2009
  • (2009)Enhancing source-level programming tools with an awareness of transparent program transformationsACM SIGPLAN Notices10.1145/1639949.164011244:10(301-320)Online publication date: 25-Oct-2009
  • (2009)Transparent Debugging of Dynamically Optimized CodeProceedings of the 7th annual IEEE/ACM International Symposium on Code Generation and Optimization10.1109/CGO.2009.28(275-286)Online publication date: 22-Mar-2009
  • (2008)How to do a million watchpointsProceedings of the Joint European Conferences on Theory and Practice of Software 17th international conference on Compiler construction10.5555/1788374.1788388(147-162)Online publication date: 29-Mar-2008
  • (2008)How to Do a Million Watchpoints: Efficient Debugging Using Dynamic InstrumentationCompiler Construction10.1007/978-3-540-78791-4_10(147-162)Online publication date: 2008
  • (2007)Debugging aspect-enabled programsProceedings of the 6th international conference on Software composition10.5555/1785051.1785074(200-215)Online publication date: 24-Mar-2007
  • (2007)Debugging Aspect-Enabled ProgramsSoftware Composition10.1007/978-3-540-77351-1_17(200-215)Online publication date: 2007
  • (2006)Techniques and tools for dynamic optimizationProceedings of the 20th international conference on Parallel and distributed processing10.5555/1898699.1898797(279-279)Online publication date: 25-Apr-2006
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media