Debugopt: Debugging fully optimized natively compiled programs using multistage instrumentation

Jie Yin, Gang Tan, Hao Li, Xiaolong Bai, Yu Ping Wang, Shi Min Hu

Research output: Contribution to journalArticle

Abstract

The accuracy of debugging information is crucial for source level debugging. However the debugging information may be inaccurate after sophisticated optimizations if the target program is compiled into native code. Hence, the efficiency of diagnosing software is affected due to inaccurate debugging information. To address the issue, we propose Debugopt, a framework for debugging fully optimized natively compiled programs using multistage instrumentation. At compile time, Debugopt generates unoptimized programs with accurate debugging information and optimized programs. At debugging time, Debugopt dynamically replaces the execution of optimized programs with unoptimized programs. Debugopt is implemented on multiple architectures, including x86-32, x86-64, armv7 and mips3. Debugopt's overhead is small during normal execution on a large range of benchmarks.

LanguageEnglish (US)
Pages18-32
Number of pages15
JournalScience of Computer Programming
Volume169
DOIs
StatePublished - Jan 1 2019

All Science Journal Classification (ASJC) codes

  • Software

Cite this

Yin, Jie ; Tan, Gang ; Li, Hao ; Bai, Xiaolong ; Wang, Yu Ping ; Hu, Shi Min. / Debugopt : Debugging fully optimized natively compiled programs using multistage instrumentation. In: Science of Computer Programming. 2019 ; Vol. 169. pp. 18-32.
@article{9f30013999a94036b8b447966c5853d9,
title = "Debugopt: Debugging fully optimized natively compiled programs using multistage instrumentation",
abstract = "The accuracy of debugging information is crucial for source level debugging. However the debugging information may be inaccurate after sophisticated optimizations if the target program is compiled into native code. Hence, the efficiency of diagnosing software is affected due to inaccurate debugging information. To address the issue, we propose Debugopt, a framework for debugging fully optimized natively compiled programs using multistage instrumentation. At compile time, Debugopt generates unoptimized programs with accurate debugging information and optimized programs. At debugging time, Debugopt dynamically replaces the execution of optimized programs with unoptimized programs. Debugopt is implemented on multiple architectures, including x86-32, x86-64, armv7 and mips3. Debugopt's overhead is small during normal execution on a large range of benchmarks.",
author = "Jie Yin and Gang Tan and Hao Li and Xiaolong Bai and Wang, {Yu Ping} and Hu, {Shi Min}",
year = "2019",
month = "1",
day = "1",
doi = "10.1016/j.scico.2018.09.005",
language = "English (US)",
volume = "169",
pages = "18--32",
journal = "Science of Computer Programming",
issn = "0167-6423",
publisher = "Elsevier",

}

Debugopt : Debugging fully optimized natively compiled programs using multistage instrumentation. / Yin, Jie; Tan, Gang; Li, Hao; Bai, Xiaolong; Wang, Yu Ping; Hu, Shi Min.

In: Science of Computer Programming, Vol. 169, 01.01.2019, p. 18-32.

Research output: Contribution to journalArticle

TY - JOUR

T1 - Debugopt

T2 - Science of Computer Programming

AU - Yin, Jie

AU - Tan, Gang

AU - Li, Hao

AU - Bai, Xiaolong

AU - Wang, Yu Ping

AU - Hu, Shi Min

PY - 2019/1/1

Y1 - 2019/1/1

N2 - The accuracy of debugging information is crucial for source level debugging. However the debugging information may be inaccurate after sophisticated optimizations if the target program is compiled into native code. Hence, the efficiency of diagnosing software is affected due to inaccurate debugging information. To address the issue, we propose Debugopt, a framework for debugging fully optimized natively compiled programs using multistage instrumentation. At compile time, Debugopt generates unoptimized programs with accurate debugging information and optimized programs. At debugging time, Debugopt dynamically replaces the execution of optimized programs with unoptimized programs. Debugopt is implemented on multiple architectures, including x86-32, x86-64, armv7 and mips3. Debugopt's overhead is small during normal execution on a large range of benchmarks.

AB - The accuracy of debugging information is crucial for source level debugging. However the debugging information may be inaccurate after sophisticated optimizations if the target program is compiled into native code. Hence, the efficiency of diagnosing software is affected due to inaccurate debugging information. To address the issue, we propose Debugopt, a framework for debugging fully optimized natively compiled programs using multistage instrumentation. At compile time, Debugopt generates unoptimized programs with accurate debugging information and optimized programs. At debugging time, Debugopt dynamically replaces the execution of optimized programs with unoptimized programs. Debugopt is implemented on multiple architectures, including x86-32, x86-64, armv7 and mips3. Debugopt's overhead is small during normal execution on a large range of benchmarks.

UR - http://www.scopus.com/inward/record.url?scp=85054861645&partnerID=8YFLogxK

UR - http://www.scopus.com/inward/citedby.url?scp=85054861645&partnerID=8YFLogxK

U2 - 10.1016/j.scico.2018.09.005

DO - 10.1016/j.scico.2018.09.005

M3 - Article

VL - 169

SP - 18

EP - 32

JO - Science of Computer Programming

JF - Science of Computer Programming

SN - 0167-6423

ER -