{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,10,10]],"date-time":"2025-10-10T01:02:07Z","timestamp":1760058127004,"version":"build-2065373602"},"reference-count":48,"publisher":"MDPI AG","issue":"3","license":[{"start":{"date-parts":[[2025,3,12]],"date-time":"2025-03-12T00:00:00Z","timestamp":1741737600000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"funder":[{"DOI":"10.13039\/501100005046","name":"Heilongjiang Natural Science Foundation","doi-asserted-by":"publisher","award":["JJ2019LH2160"],"award-info":[{"award-number":["JJ2019LH2160"]}],"id":[{"id":"10.13039\/501100005046","id-type":"DOI","asserted-by":"publisher"}]}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Entropy"],"abstract":"<jats:p>Embedded programs are not only inseparable from our daily lives but are also widely used in aerospace, medical devices, and other fields that require very high security and stability. The uncertainty and randomness of the large amount of data generated by these systems during operation can be quantified by entropy. Traditional repair methods for concurrency defects may introduce new issues such as deadlocks, original semantic destruction, and high performance overhead. To overcome the limitations of the existing methods and help developers reduce the time and effort spent on fixing software defects, this paper proposes ESfix, a defect fixing technique applied to embedded software. ESfix first utilizes the bug information reported by the defect detection tool to locate the repair region and extracts the node information corresponding to the defective code. Then, ESfix optimizes the interrupt disable\/enable strategies and lock strategies to repair data race and reduce bugs in information transmission, thereby reducing system entropy and improving data certainty and reliability. Finally, ESfix repairs atomicity violation defects using the reordering repair strategy, reducing information entropy by adjusting the order of information to ensure its integrity and consistency. ESfix conducts semantic analysis by analyzing the dependency graph in the control flow graph (CFG) to ensure that no new defects are introduced during the repair process, and to maintain the efficiency and accuracy of information transmission between different parts of the code. We evaluate the effectiveness of repair strategies through information entropy, and the experimental results show that ESfix not only improves performance but also reduces potential risks and losses.<\/jats:p>","DOI":"10.3390\/e27030294","type":"journal-article","created":{"date-parts":[[2025,3,12]],"date-time":"2025-03-12T04:55:44Z","timestamp":1741755344000},"page":"294","update-policy":"https:\/\/doi.org\/10.3390\/mdpi_crossmark_policy","source":"Crossref","is-referenced-by-count":0,"title":["ESfix: An Embedded Program Repair Tool for Effective Removal of Concurrency Defects"],"prefix":"10.3390","volume":"27","author":[{"ORCID":"https:\/\/orcid.org\/0000-0002-5549-6723","authenticated-orcid":false,"given":"Jingwen","family":"Zhao","sequence":"first","affiliation":[{"name":"College of Computer Science and Technology, Harbin Engineering University, Nantong Street, Harbin 150001, China"}]},{"given":"Yanxia","family":"Wu","sequence":"additional","affiliation":[{"name":"College of Computer Science and Technology, Harbin Engineering University, Nantong Street, Harbin 150001, China"}]},{"given":"Yan","family":"Fu","sequence":"additional","affiliation":[{"name":"College of Computer Science and Technology, Harbin Engineering University, Nantong Street, Harbin 150001, China"}]},{"given":"Shuyong","family":"Liu","sequence":"additional","affiliation":[{"name":"College of Computer Science and Technology, Harbin Engineering University, Nantong Street, Harbin 150001, China"}]}],"member":"1968","published-online":{"date-parts":[[2025,3,12]]},"reference":[{"key":"ref_1","doi-asserted-by":"crossref","unstructured":"Chen, D., Jiang, Y., Xu, C., and Ma, X. (2021). On interleaving space exploration of multi-threaded programs. Front. Comput. Sci., 15.","DOI":"10.1007\/s11704-020-9501-6"},{"key":"ref_2","doi-asserted-by":"crossref","first-page":"785","DOI":"10.1145\/2544173.2509539","article-title":"Efficient concurrency-bug detection across inputs","volume":"48","author":"Deng","year":"2013","journal-title":"ACM Sigplan Not."},{"key":"ref_3","first-page":"1","article-title":"A survey of learning-based automated program repair","volume":"33","author":"Zhang","year":"2023","journal-title":"ACM Trans. Softw. Eng. Methodol."},{"key":"ref_4","doi-asserted-by":"crossref","first-page":"56","DOI":"10.1145\/3318162","article-title":"Automated program repair","volume":"62","author":"Pradel","year":"2019","journal-title":"Commun. ACM"},{"key":"ref_5","unstructured":"Britton, T., Jeng, L., Carver, G., Cheak, P., and Katzenellenbogen, T. (2013). Automated Program Repair, Judge Business School, University Cambridge. Technology Reports."},{"key":"ref_6","doi-asserted-by":"crossref","first-page":"1","DOI":"10.1145\/3538644","article-title":"Fuzzing of embedded systems: A survey","volume":"55","author":"Yun","year":"2022","journal-title":"ACM Comput. Surv."},{"key":"ref_7","unstructured":"Bai, J.J., Li, T., and Hu, S.M. (2022, January 11\u201313). DLOS: Effective static detection of deadlocks in OS kernels. Proceedings of the 2022 USENIX Annual Technical Conference (USENIX ATC 22), Carlsbad, CA, USA."},{"key":"ref_8","doi-asserted-by":"crossref","first-page":"855","DOI":"10.1007\/s11219-017-9385-3","article-title":"A systematic survey on automated concurrency bug detection, exposing, avoidance, and fixing techniques","volume":"26","author":"Fu","year":"2018","journal-title":"Softw. Qual. J."},{"key":"ref_9","doi-asserted-by":"crossref","unstructured":"Zhu, Q., Sun, Z., Xiao, Y.A., Zhang, W., Yuan, K., Xiong, Y., and Zhang, L. (2021, January 23\u201328). A syntax-guided edit decoder for neural program repair. Proceedings of the 29th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering, Athens, Greece.","DOI":"10.1145\/3468264.3468544"},{"key":"ref_10","doi-asserted-by":"crossref","first-page":"419","DOI":"10.1109\/TSE.2022.3152089","article-title":"Let\u2019s talk with developers, not about developers: A review of automatic program repair research","volume":"49","author":"Winter","year":"2022","journal-title":"IEEE Trans. Softw. Eng."},{"key":"ref_11","doi-asserted-by":"crossref","first-page":"34","DOI":"10.1109\/TSE.2016.2560811","article-title":"Nopol: Automatic Repair of Conditional Statement Bugs in Java Programs","volume":"43","author":"Xuan","year":"2017","journal-title":"IEEE Trans. Softw. Eng."},{"key":"ref_12","doi-asserted-by":"crossref","unstructured":"Le, X.B.D., Chu, D.H., Lo, D., Le Goues, C., and Visser, W. (2017, January 11\u201313). S3: Syntax-and semantic-guided repair synthesis via programming by examples. Proceedings of the 2017 11th Joint Meeting on Foundations of Software Engineering, Carlsbad, CA, USA.","DOI":"10.1145\/3106237.3106309"},{"key":"ref_13","doi-asserted-by":"crossref","first-page":"106865","DOI":"10.1016\/j.infsof.2022.106865","article-title":"Speeding up constraint-based program repair using a search-based technique","volume":"146","author":"Yi","year":"2022","journal-title":"Inf. Softw. Technol."},{"key":"ref_14","doi-asserted-by":"crossref","unstructured":"Villanueva, O.M., Trujillo, L., and Hernandez, D.E. (2020, January 8\u201312). Novelty search for automatic bug repair. Proceedings of the 2020 Genetic and Evolutionary Computation Conference, Canc\u00fan, Mexico.","DOI":"10.1145\/3377930.3389845"},{"key":"ref_15","doi-asserted-by":"crossref","unstructured":"Xu, X., Sui, Y., Yan, H., and Xue, J. (2019, January 25\u201331). VFix: Value-flow-guided precise program repair for null pointer dereferences. Proceedings of the 2019 IEEE\/ACM 41st International Conference on Software Engineering (ICSE), Montreal, QC, Canada.","DOI":"10.1109\/ICSE.2019.00063"},{"key":"ref_16","doi-asserted-by":"crossref","unstructured":"Liu, K., Koyuncu, A., Kim, D., and Bissyand\u00e9, T.F. (2019, January 15\u201319). TBar: Revisiting template-based automated program repair. Proceedings of the 28th ACM SIGSOFT International Symposium on Software Testing and Analysis, Beijing, China.","DOI":"10.1145\/3293882.3330577"},{"key":"ref_17","doi-asserted-by":"crossref","unstructured":"Xia, C.S., Wei, Y., and Zhang, L. (2023, January 14\u201320). Automated program repair in the era of large pre-trained language models. Proceedings of the 2023 IEEE\/ACM 45th International Conference on Software Engineering (ICSE), Melbourne, Australia.","DOI":"10.1109\/ICSE48619.2023.00129"},{"key":"ref_18","doi-asserted-by":"crossref","unstructured":"Jin, G., Song, L., Zhang, W., Lu, S., and Liblit, B. (2011, January 4\u20138). Automated atomicity-violation fixing. Proceedings of the 32nd ACM SIGPLAN Conference on Programming Language Design and Implementation, San Jose, CA, USA.","DOI":"10.1145\/1993498.1993544"},{"key":"ref_19","doi-asserted-by":"crossref","unstructured":"Li, C., Chen, R., Wang, B., Yu, T., Gao, D., and Yang, M. (2022, January 18\u201322). Precise and efficient atomicity violation detection for interrupt-driven programs via staged path pruning. Proceedings of the 31st ACM SIGSOFT International Symposium on Software Testing and Analysis, Virtual, Republic of Korea.","DOI":"10.1145\/3533767.3534412"},{"key":"ref_20","doi-asserted-by":"crossref","unstructured":"Wu, X., Chen, L., Min\u00e9, A., Dong, W., and Wang, J. (2015, January 4\u20139). Numerical static analysis of interrupt-driven programs via sequentialization. Proceedings of the 2015 International Conference on Embedded Software (EMSOFT), Amsterdam, The Netherlands.","DOI":"10.1109\/EMSOFT.2015.7318260"},{"key":"ref_21","doi-asserted-by":"crossref","unstructured":"Mukherjee, S., Kumar, A., and D\u2019Souza, D. (2017, January 15\u201317). Detecting all high-level dataraces in an RTOS kernel. Proceedings of the Verification, Model Checking, and Abstract Interpretation: 18th International Conference, VMCAI 2017, Paris, France.","DOI":"10.1007\/978-3-319-52234-0_22"},{"key":"ref_22","doi-asserted-by":"crossref","unstructured":"Li, C., Chen, R., Wang, B., Wang, Z., Yu, T., Jiang, Y., and Yang, M. (2023, January 17\u201321). An Empirical Study on Concurrency Bugs in Interrupt-Driven Embedded Software. Proceedings of the 32nd ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA\u201923), Seattle, WA, USA.","DOI":"10.1145\/3597926.3598140"},{"key":"ref_23","doi-asserted-by":"crossref","first-page":"21699","DOI":"10.1007\/s11227-024-06189-4","article-title":"Efficient data race detection for interrupt-driven programs via path feasibility analysis","volume":"80","author":"Zhao","year":"2024","journal-title":"J. Supercomput."},{"key":"ref_24","doi-asserted-by":"crossref","first-page":"104171","DOI":"10.1016\/j.cose.2024.104171","article-title":"Thread-sensitive fuzzing for concurrency bug detection","volume":"148","author":"Zhao","year":"2025","journal-title":"Comput. Secur."},{"key":"ref_25","doi-asserted-by":"crossref","unstructured":"Yu, B., Tian, C., and Xing, H. (2023, January 3\u20139). Detecting Atomicity Violations in Interrupt-Driven Programs via Interruption Points Selecting and Delayed ISR-Triggering. Proceedings of the 31st ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering, San Francisco, CA, USA.","DOI":"10.1145\/3611643.3616276"},{"key":"ref_26","doi-asserted-by":"crossref","unstructured":"Sung, C., Kusano, M., and Wang, C. (November, January 30). Modular verification of interrupt-driven software. Proceedings of the 2017 32nd IEEE\/ACM International Conference on Automated Software Engineering (ASE), Urbana, IL, USA.","DOI":"10.1109\/ASE.2017.8115634"},{"key":"ref_27","unstructured":"Jin, G., Zhang, W., and Deng, D. (2012, January 8\u201310). Automated Concurrency-Bug Fixing. Proceedings of the 10th USENIX Symposium on Operating Systems Design and Implementation (OSDI 12), Hollywood, CA, USA."},{"key":"ref_28","doi-asserted-by":"crossref","first-page":"325","DOI":"10.1145\/1555815.1555796","article-title":"A case for an interleaving constrained shared-memory multi-processor","volume":"37","author":"Yu","year":"2009","journal-title":"ACM SIGARCH Comput. Archit. News"},{"key":"ref_29","doi-asserted-by":"crossref","unstructured":"Cai, Y., Cao, L., and Zhao, J. (2012, January 4\u20138). Adaptively generating high quality fixes for atomicity violations. Proceedings of the 2017 11th Joint Meeting on Foundations of Software Engineering, Paderborn, Germany.","DOI":"10.1145\/3106237.3106239"},{"key":"ref_30","first-page":"1943","article-title":"Sequencer: Sequence-to-sequence learning for end-to-end program repair","volume":"47","author":"Chen","year":"2019","journal-title":"IEEE Trans. Softw. Eng."},{"key":"ref_31","doi-asserted-by":"crossref","unstructured":"Hua, J., Zhang, M., Wang, K., and Khurshid, S. (2018, January 4\u20139). Sketchfix: A tool for automated program repair approach using lazy candidate generation. Proceedings of the 2018 26th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering, Lake Buena Vista, FL, USA.","DOI":"10.1145\/3236024.3264600"},{"key":"ref_32","unstructured":"Mechtaev, S., Nguyen, M.D., Noller, Y., Grunske, L., and Roychoudhury, A. (June, January 27). Semantic program repair using a reference implementation. Proceedings of the 40th International Conference on Software Engineering, Gothenburg, Sweden."},{"key":"ref_33","doi-asserted-by":"crossref","unstructured":"Wardat, M., Le, W., and Rajan, H. (2021, January 22\u201330). Deeplocalize: Fault localization for deep neural networks. Proceedings of the 2021 IEEE\/ACM 43rd International Conference on Software Engineering (ICSE), Madrid, Spain.","DOI":"10.1109\/ICSE43902.2021.00034"},{"key":"ref_34","doi-asserted-by":"crossref","first-page":"707","DOI":"10.1109\/TSE.2016.2521368","article-title":"A survey on software fault localization","volume":"42","author":"Wong","year":"2016","journal-title":"IEEE Trans. Softw. Eng."},{"key":"ref_35","doi-asserted-by":"crossref","first-page":"34","DOI":"10.1109\/TSE.2017.2755013","article-title":"Automatic Software Repair: A Survey","volume":"45","author":"Gazzola","year":"2019","journal-title":"IEEE Trans. Softw. Eng."},{"key":"ref_36","doi-asserted-by":"crossref","unstructured":"Weimer, W., Nguyen, T., Le Goues, C., and Forrest, S. (2009, January 16\u201324). Automatically finding patches using genetic programming. Proceedings of the 2009 IEEE 31st International Conference on Software Engineering, Vancouver, BC, Canada.","DOI":"10.1109\/ICSE.2009.5070536"},{"key":"ref_37","doi-asserted-by":"crossref","unstructured":"Kelk, D., Jalbert, K., and Bradbury, J.S. (2013, January 19\u201320). Automatically repairing concurrency bugs with ARC. Proceedings of the Multicore Software Engineering, Performance, and Tools: International Conference, MUSEPAT 2013, St. Petersburg, Russia.","DOI":"10.1007\/978-3-642-39955-8_7"},{"key":"ref_38","doi-asserted-by":"crossref","first-page":"1","DOI":"10.1145\/3402450","article-title":"Smart contract repair","volume":"29","author":"Yu","year":"2020","journal-title":"ACM Trans. Softw. Eng. Methodol. (TOSEM)"},{"key":"ref_39","doi-asserted-by":"crossref","unstructured":"Zhang, Y., Ma, S., Li, J., Li, K., Nepal, S., and Gu, D. (2020, January 18\u201321). Smartshield: Automatic smart contract protection made easy. Proceedings of the 2020 IEEE 27th International Conference on Software Analysis, Evolution and Reengineering (SANER), London, ON, Canada.","DOI":"10.1109\/SANER48275.2020.9054825"},{"key":"ref_40","doi-asserted-by":"crossref","first-page":"112107","DOI":"10.1016\/j.jss.2024.112107","article-title":"ReenRepair: Automatic and semantic equivalent repair of reentrancy in smart contracts","volume":"216","author":"Huang","year":"2024","journal-title":"J. Syst. Softw."},{"key":"ref_41","doi-asserted-by":"crossref","unstructured":"Liu, H., Chen, Y., and Lu, S. (2016, January 13\u201318). Understanding and generating high quality patches for concurrency bugs. Proceedings of the 2016 24th ACM SIGSOFT International Symposium on Foundations of Software Engineering, Seattle, WA, USA.","DOI":"10.1145\/2950290.2950309"},{"key":"ref_42","doi-asserted-by":"crossref","unstructured":"Nguyen, T.D., Pham, L.H., and Sun, J. (2021, January 24\u201327). SGUARD: Towards fixing vulnerable smart contracts automatically. Proceedings of the 2021 IEEE Symposium on Security and Privacy (SP), San Francisco, CA, USA.","DOI":"10.1109\/SP40001.2021.00057"},{"key":"ref_43","doi-asserted-by":"crossref","unstructured":"Ferreira Torres, C., Jonker, H., and State, R. (2022, January 26\u201328). Elysium: Context-aware bytecode-level patching to automatically heal vulnerable smart contracts. Proceedings of the 25th International Symposium on Research in Attacks, Intrusions and Defenses, Limassol, Cyprus.","DOI":"10.1145\/3545948.3545975"},{"key":"ref_44","unstructured":"Li, Y., Wang, S., and Nguyen, T.N. (2022, January 21\u201329). Dear: A novel deep learning-based approach for automated program repair. Proceedings of the 44th International Conference on Software Engineering, Pittsburgh, PA, USA."},{"key":"ref_45","doi-asserted-by":"crossref","unstructured":"Jiang, N., Lutellier, T., and Tan, L. (2021, January 22\u201330). Cure: Code-aware neural machine translation for automatic program repair. Proceedings of the 2021 IEEE\/ACM 43rd International Conference on Software Engineering (ICSE), Madrid, Spain.","DOI":"10.1109\/ICSE43902.2021.00107"},{"key":"ref_46","first-page":"1","article-title":"Smart contract code repair recommendation based on reinforcement learning and multi-metric optimization","volume":"33","author":"Guo","year":"2024","journal-title":"ACM Trans. Softw. Eng. Methodol."},{"key":"ref_47","doi-asserted-by":"crossref","unstructured":"Xia, C.S., and Zhang, L. (2022, January 14\u201318). Less training, more repairing please: Revisiting automated program repair via zero-shot learning. Proceedings of the 30th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering, Singapore.","DOI":"10.1145\/3540250.3549101"},{"key":"ref_48","doi-asserted-by":"crossref","first-page":"112116","DOI":"10.1016\/j.jss.2024.112116","article-title":"Confix: Combining Node-Level Fix Templates and Masked Language Model for Automatic Program Repair","volume":"216","author":"Xiao","year":"2024","journal-title":"J. Syst. Softw."}],"container-title":["Entropy"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/www.mdpi.com\/1099-4300\/27\/3\/294\/pdf","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,10,9]],"date-time":"2025-10-09T16:51:01Z","timestamp":1760028661000},"score":1,"resource":{"primary":{"URL":"https:\/\/www.mdpi.com\/1099-4300\/27\/3\/294"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2025,3,12]]},"references-count":48,"journal-issue":{"issue":"3","published-online":{"date-parts":[[2025,3]]}},"alternative-id":["e27030294"],"URL":"https:\/\/doi.org\/10.3390\/e27030294","relation":{},"ISSN":["1099-4300"],"issn-type":[{"type":"electronic","value":"1099-4300"}],"subject":[],"published":{"date-parts":[[2025,3,12]]}}}