2010
DOI: 10.1109/tse.2009.66
|View full text |Cite
|
Sign up to set email alerts
|

Better Debugging via Output Tracing and Callstack-Sensitive Slicing

Abstract: Abstract-Debugging often involves 1) finding the point of failure (the first statement that produces bad output) and 2) finding and fixing the actual bug. Print statements and debugger break points can help with step 1. Slicing the program back from values used at the point of failure can help with step 2. However, neither approach is ideal: Debuggers and print statements can be clumsy and timeconsuming and backward slices can be almost as large as the original program. This paper addresses both problems. We p… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
22
0
1

Year Published

2011
2011
2016
2016

Publication Types

Select...
4
2
2

Relationship

0
8

Authors

Journals

citations
Cited by 29 publications
(23 citation statements)
references
References 31 publications
0
22
0
1
Order By: Relevance
“…For test cases where core dumps were already produced, we used the generated core file. If a test case produced bad output without crashing, we used the output tracing tool of Horwitz et al [18] to identify the first character of incorrect output, and forced the application to abort at that point. We aggregated results by taking arithmetic means across all failing tests of each faulty build, then across all faulty builds of each version.…”
Section: B Analysis Effectivenessmentioning
confidence: 99%
See 1 more Smart Citation
“…For test cases where core dumps were already produced, we used the generated core file. If a test case produced bad output without crashing, we used the output tracing tool of Horwitz et al [18] to identify the first character of incorrect output, and forced the application to abort at that point. We aggregated results by taking arithmetic means across all failing tests of each faulty build, then across all faulty builds of each version.…”
Section: B Analysis Effectivenessmentioning
confidence: 99%
“…We compute interprocedural static slices backward from the crash point in the innermost stack frame; intraprocedural slices work backward from the crash point in each function in the crash stack. All interprocedural slices are callstack-sensitive [9,18,24].…”
Section: B Analysis Effectivenessmentioning
confidence: 99%
“…For the Siemens suite, gzip, space, and flex, the experiments use slices taken from (PDG-vertex, call-stack) pairs at which symptoms of runtime errors have been observed (i.e., unexpected output or crashes). Those configurations were obtained using the debugging tools described by Horwitz et al [2010]. For wc and go, slices were taken with respect to all of the calling contexts of printf in the unrolled SDG (by using an automaton that expressed this slicing criterion).…”
Section: Specialization-slicing Experimentsmentioning
confidence: 99%
“…Essa técnica tende a produzir históricos de acompanhamento muito extensos, o que em geral é eficaz durante os testes, pois fornece informações sobre a execução do sistema. Entretanto, durante o uso, apresenta um impacto considerável de desempenho (Mirgorodskiy et al, 2006;Horwitz et al, 2010) e gera um volume de dados muito grande, sendo poucos destes de interesse para fins de avaliação, pois dados são gerados, sistematicamente, mesmo se nada tiverem a ver com as falhas observadas. Isso decorre do fato que, em tempo de uso, a instrumentação deve gerar dados a priori para potenciais falhas sempre desconhecidas.…”
Section: Lista De Figurasunclassified