Search : [ keyword: 디버깅 ] (4)

SPI: Similar Patch Identifier for Automated Program Repair

Sechang Jang, Seongbin Kim, Junhyeok Choi, Jindae Kim, Jaechang Nam

http://doi.org/10.5626/JOK.2025.52.2.152

The primary challenge in Automated Program Repair (APR) techniques is the size of search space. In this study, we introduce a novel approach called Similar Patch Identifier (SPI), which reduces the search space by leveraging the similarities among bug-introducing changes and suggesting suitable repair operators. We evaluate this approach using the existing context-based APR tool, ConFix, and the Java defect benchmark, Defects4J. Our experiments revealed that, although SPI narrowed the search space to 10 candidate bug-fixing commits for each defect, it successfully generated meaningful patches for four bugs that ConFix was unable to repair.

Behavior Model-Based Fault Localization for RESTful Web Applications

Jong-In Jang, Nakwon Lee, Duksan Ryu, Jongmoon Baik

http://doi.org/10.5626/JOK.2020.47.11.1044

Because of the nature of Web applications being more complex, larger in scale and more likely to be composed of black box components compared to traditional software systems wherein fault localization techniques are actively used, existing techniques can be only minimally applied to localize faults in Web applications. Also, existing studies to localize a fault in a complex system such as a Web application system also have limitations in capturing the indirect interactions in Web applications and suffers from the Web application’s dynamic nature. In this study, we propose a behavior modeling-based fault localization for the RESTful Web applications. The approach models a RESTful Web application as a sequence of behaviors that captures the direct and indirect interactions in the application. The modeling process is lightweight and it is not necessary to build the model in advance of the actual execution of application. The spectrum-based fault localization is then performed in the granularity of behavior pairs in the behavior model. To demonstrate the approach, a case study on the RESTful Web application built upon the YouTube Data API v3 was conducted and demonstrated that the approach can successfully resolve aforementioned difficulties and localize a fault in the RESTful Web application.

Software Black Box

Hyunmin Yoon, Minsoo Ryu

http://doi.org/10.5626/JOK.2018.45.5.416

Deterministic replay mechanisms have proved to be useful in many areas including debugging, fault tolerance, security, and postmortem analysis because they can deterministically reproduce a computer system’s execution. However, proposed full-system replay mechanisms have limited applicability because of their reliance on special hardware instrumentation or virtual machine (VM) technology. In this paper, we present a purely software-based approach to full-system replay, a software black box (SBB) that does not require either special hardware instrumentation or virtual machine technology. Our proposed SBB can deterministically replay a full software system, including both applications and the OS itself. We have implemented a prototype of SBB in an embedded RTOS on top of ARMv7 Cortex-A9 and have carried out experiments to evaluate our approach. Our experiments demonstrate that SBB can successfully reproduce subtle concurrency bugs, such as races and deadlocks that may occur both in applications and in the OS kernel. We also show that the event and data logging of SBB incurs such small performance overhead that it can be enabled permanently in the OS kernel.

On-the-fly Monitoring Tool for Detecting Data Races in Multithread Programs

Bong-Jun Paeng, Se-Won Park, In-Bon Kuh, Ok-Kyoon Ha, Yong-Kee Jun

http://doi.org/

It is difficult and cumbersome to figure out whether a multithread program runs with concurrency bugs, such as data races and atomicity violations, because there are many possible executions of the program and a lot of the defects are hard to reproduce. Hence, monitoring techniques for collecting and analyzing the information from program execution, such as thread executions, memory accesses, and synchronization information, are important to locate data races for debugging multithread programs. This paper presents an efficient and practical monitoring tool, called VcTrace, that analyzes the partial ordering of concurrent threads and events during an execution of the program based on the vector clock system. Empirical results on C/C++ benchmarks using Pthreads show that VcTrace is a sound and practical tool for on-the-fly data race detection as well as for analyzing multithread programs.


Search




Journal of KIISE

  • ISSN : 2383-630X(Print)
  • ISSN : 2383-6296(Electronic)
  • KCI Accredited Journal

Editorial Office

  • Tel. +82-2-588-9240
  • Fax. +82-2-521-1352
  • E-mail. chwoo@kiise.or.kr