{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,9,24]],"date-time":"2026-09-24T16:11:05Z","timestamp":1790266265255,"version":"4.1.0"},"reference-count":46,"publisher":"Elsevier BV","issue":"3","license":[{"start":{"date-parts":[[2026,9,1]],"date-time":"2026-09-01T00:00:00Z","timestamp":1788220800000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/www.elsevier.com\/tdm\/userlicense\/1.0\/"},{"start":{"date-parts":[[2026,9,1]],"date-time":"2026-09-01T00:00:00Z","timestamp":1788220800000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/www.elsevier.com\/legal\/tdmrep-license"},{"start":{"date-parts":[[2025,12,6]],"date-time":"2025-12-06T00:00:00Z","timestamp":1764979200000},"content-version":"vor","delay-in-days":0,"URL":"http:\/\/creativecommons.org\/licenses\/by-nc-nd\/4.0\/"}],"funder":[{"DOI":"10.13039\/100000145","name":"National Science Foundation Division of Information and Intelligent Systems","doi-asserted-by":"publisher","award":["2334243"],"award-info":[{"award-number":["2334243"]}],"id":[{"id":"10.13039\/100000145","id-type":"DOI","asserted-by":"publisher"}]},{"DOI":"10.13039\/100000001","name":"National Science Foundation","doi-asserted-by":"publisher","id":[{"id":"10.13039\/100000001","id-type":"DOI","asserted-by":"publisher"}]}],"content-domain":{"domain":["elsevier.com","sciencedirect.com"],"crossmark-restriction":true},"short-container-title":["High-Confidence Computing"],"published-print":{"date-parts":[[2026,9]]},"DOI":"10.1016\/j.hcc.2025.100377","type":"journal-article","created":{"date-parts":[[2025,12,8]],"date-time":"2025-12-08T07:59:26Z","timestamp":1765180766000},"page":"100377","update-policy":"https:\/\/doi.org\/10.1016\/elsevier_cm_policy","source":"Crossref","is-referenced-by-count":0,"title":["Enhancing concurrency bug detection in Rust programs through LLVM IR based graph visualization"],"prefix":"10.1016","volume":"6","author":[{"ORCID":"https:\/\/orcid.org\/0000-0003-3589-3120","authenticated-orcid":false,"given":"Young","family":"Lee","sequence":"first","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0009-0001-6959-2855","authenticated-orcid":false,"given":"Ernesto","family":"Diaz","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0002-3819-3544","authenticated-orcid":false,"given":"Jeong","family":"Yang","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"ORCID":"https:\/\/orcid.org\/0000-0003-2137-2375","authenticated-orcid":false,"given":"Bozhen","family":"Liu","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"78","reference":[{"key":"10.1016\/j.hcc.2025.100377_b1","article-title":"Rust: from POPL to practice (keynote)","author":"Turon","year":"2017","journal-title":"Proc. the 44th ACM SIGPLAN Symp. Princ. Program. Lang."},{"key":"10.1016\/j.hcc.2025.100377_b2","series-title":"The rust language","first-page":"103","author":"Matsakis","year":"2014"},{"key":"10.1016\/j.hcc.2025.100377_b3","doi-asserted-by":"crossref","first-page":"1","DOI":"10.1145\/3158154","article-title":"RustBelt: securing the foundations of the rust programming language","volume":"2","author":"Jung","year":"2017","journal-title":"Proc. the ACM Program. Lang."},{"key":"10.1016\/j.hcc.2025.100377_b4","series-title":"A practical analysis of rust\u2019s concurrency story","author":"Saligrama","year":"2019"},{"key":"10.1016\/j.hcc.2025.100377_b5","series-title":"Fearless concurrency? Understanding concurrent programming safety in real-world rust software","author":"Yu","year":"2019"},{"key":"10.1016\/j.hcc.2025.100377_b6","series-title":"Proceedings of the 41st ACM SIGPLAN Conference on Programming Language Design and Implementation","first-page":"763","article-title":"Understanding memory and thread safety practices and issues in real-world rust programs","author":"Qin","year":"2020"},{"key":"10.1016\/j.hcc.2025.100377_b7","series-title":"Proceedings of the 31st ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering","first-page":"2032","article-title":"On the dual nature of necessity in use of rust unsafe code","author":"Zhang","year":"2023"},{"issue":"2","key":"10.1016\/j.hcc.2025.100377_b8","first-page":"34:1","article-title":"A closer look at the security risks in the rust ecosystem","volume":"33","author":"Zheng","year":"2023","journal-title":"ACM Trans. Softw. Eng. Methodol."},{"key":"10.1016\/j.hcc.2025.100377_b9","doi-asserted-by":"crossref","DOI":"10.1145\/3469095.3469275","article-title":"Rust for visual effects","author":"Langlands","year":"2021","journal-title":"Digit. Prod. Symp."},{"key":"10.1016\/j.hcc.2025.100377_b10","unstructured":"MirChecker, MirChecker: Detecting Bugs in Rust Programs via Static Analysis | Proceedings of the 2021 ACM SIGSAC Conference on Computer and Communications Security, URL https:\/\/dl.acm.org\/doi\/10.1145\/3460120.3484541."},{"issue":"4","key":"10.1016\/j.hcc.2025.100377_b11","doi-asserted-by":"crossref","first-page":"82:1","DOI":"10.1145\/3542948","article-title":"SafeDrop: Detecting memory deallocation bugs of rust programs via static data-flow analysis","volume":"32","author":"Cui","year":"2023","journal-title":"ACM Trans. Softw. Eng. Methodol."},{"key":"10.1016\/j.hcc.2025.100377_b12","series-title":"A study of undefined behavior across foreign function boundaries in rust libraries","author":"McCormack","year":"2025"},{"key":"10.1016\/j.hcc.2025.100377_b13","series-title":"2024 IEEE Symposium on Security and Privacy","first-page":"4053","article-title":"Erasan: Efficient rust address sanitizer","author":"Min","year":"2024"},{"key":"10.1016\/j.hcc.2025.100377_b14","series-title":"REVIS: An error visualization tool for rust","author":"Wang","year":"2023"},{"key":"10.1016\/j.hcc.2025.100377_b15","series-title":"Proceedings of the 2020 ACM SIGSAC Conference on Computer and Communications Security","first-page":"2085","article-title":"VrLifeTime \u2013 an IDE tool to avoid concurrency and memory bugs in rust","author":"Zhang","year":"2020"},{"issue":"OOPSLA","key":"10.1016\/j.hcc.2025.100377_b16","doi-asserted-by":"crossref","first-page":"125:1","DOI":"10.1145\/3276495","article-title":"Reconciling high-level optimizations and low-level code in LLVM","volume":"2","author":"Lee","year":"2018","journal-title":"Proc. ACM Program. Lang."},{"key":"10.1016\/j.hcc.2025.100377_b17","series-title":"2014 IEEE Symposium on Security and Privacy","first-page":"590","article-title":"Modeling and discovering vulnerabilities with code property graphs","author":"Yamaguchi","year":"2014"},{"key":"10.1016\/j.hcc.2025.100377_b18","unstructured":"Neo4j, Neo4j Graph Database & Analytics \u2013 The Leader in Graph Databases, URL https:\/\/neo4j.com\/."},{"key":"10.1016\/j.hcc.2025.100377_b19","series-title":"2019 IEEE 28th International Conference on Enabling Technologies: Infrastructure for Collaborative Enterprises (WETICE)","first-page":"237","article-title":"JSCAN: Designing an easy to use LLVM-based static analysis framework","author":"Fornaia","year":"2019"},{"issue":"1","key":"10.1016\/j.hcc.2025.100377_b20","doi-asserted-by":"crossref","first-page":"458","DOI":"10.34190\/eccws.22.1.1154","article-title":"Static vulnerability analysis using intermediate representations: A literature review","volume":"22","author":"Spanier","year":"2023","journal-title":"Eur. Conf. Cyber Warf. Secur."},{"key":"10.1016\/j.hcc.2025.100377_b21","series-title":"31st Annual International Computer Software and Applications Conference (COMPSAC 2007)","first-page":"541","article-title":"Visualization of concurrent program executions","volume":"2","author":"Artho","year":"2007"},{"key":"10.1016\/j.hcc.2025.100377_b22","series-title":"2015 IEEE 3rd Working Conference on Software Visualization (VISSOFT)","first-page":"200","article-title":"Advancing data race investigation and classification through visualization","author":"Koutsopoulos","year":"2015"},{"issue":"4","key":"10.1016\/j.hcc.2025.100377_b23","doi-asserted-by":"crossref","first-page":"144","DOI":"10.1145\/3418295","article-title":"Safe systems programming in rust","volume":"64","author":"Jung","year":"2021","journal-title":"Commun. ACM"},{"key":"10.1016\/j.hcc.2025.100377_b24","doi-asserted-by":"crossref","first-page":"1","DOI":"10.1145\/3371102","article-title":"RustBelt meets relaxed memory","volume":"4","author":"Dang","year":"2019","journal-title":"Proc. the ACM Program. Lang."},{"issue":"ICFP","key":"10.1016\/j.hcc.2025.100377_b25","doi-asserted-by":"crossref","first-page":"1","DOI":"10.1145\/3473597","article-title":"GhostCell: separating permissions from data in rust","volume":"5","author":"Yanovski","year":"2021","journal-title":"Proc. the ACM Program. Lang."},{"key":"10.1016\/j.hcc.2025.100377_b26","series-title":"2023 IEEE 23rd International Conference on Software Quality, Reliability, and Security Companion (QRS-C)","first-page":"646","article-title":"Modeling and discovering data race with concurrent code property graphs","author":"Cao","year":"2023"},{"key":"10.1016\/j.hcc.2025.100377_b27","series-title":"Representing LLVM-IR in a code property graph","author":"K\u00fcchler","year":"2022"},{"key":"10.1016\/j.hcc.2025.100377_b28","series-title":"A language-independent analysis platform for source code","author":"Weiss","year":"2022"},{"key":"10.1016\/j.hcc.2025.100377_b29","series-title":"Tools and Algorithms for the Construction and Analysis of Systems","first-page":"380","article-title":"Skink: Static analysis of programs in LLVM intermediate representation","author":"Cassez","year":"2017"},{"key":"10.1016\/j.hcc.2025.100377_b30","series-title":"2016 17th IEEE\/ACIS International Conference on Software Engineering, Artificial Intelligence, Networking and Parallel\/Distributed Computing (SNPD)","first-page":"407","article-title":"MLSA: A static bugs analysis tool based on LLVM IR","author":"Liang","year":"2016"},{"key":"10.1016\/j.hcc.2025.100377_b31","series-title":"2018 IEEE 16th International Conference on Industrial Informatics (INDIN)","first-page":"108","article-title":"No panic! verification of rust programs by symbolic execution","author":"Lindner","year":"2018"},{"key":"10.1016\/j.hcc.2025.100377_b32","series-title":"Learning to map source code to software vulnerability using code-as-a-graph","author":"Suneja","year":"2020"},{"key":"10.1016\/j.hcc.2025.100377_b33","doi-asserted-by":"crossref","first-page":"1943","DOI":"10.1109\/TIFS.2020.3044773","article-title":"Combining graph-based learning with automated data collection for code vulnerability detection","volume":"16","author":"Wang","year":"2021","journal-title":"IEEE Trans. Inf. Forensics Secur."},{"key":"10.1016\/j.hcc.2025.100377_b34","doi-asserted-by":"crossref","first-page":"72239","DOI":"10.1109\/ACCESS.2020.2987631","article-title":"An efficient and scalable platform for java source code analysis using overlaid graph representations","volume":"8","author":"Rodriguez-Prieto","year":"2020","journal-title":"IEEE Access"},{"key":"10.1016\/j.hcc.2025.100377_b35","series-title":"Proceedings of the 2nd International Conference on Software Engineering and Information Management","first-page":"80","article-title":"JavaRelationshipGraphs (JRG): Transforming java projects into graphs using Neo4j graph databases","author":"Arora","year":"2019"},{"key":"10.1016\/j.hcc.2025.100377_b36","series-title":"2019 34th IEEE\/ACM International Conference on Automated Software Engineering (ASE)","first-page":"1102","article-title":"Visual analytics for concurrent java executions","author":"Artho","year":"2019"},{"key":"10.1016\/j.hcc.2025.100377_b37","series-title":"Proceedings of the 22nd Koli Calling International Conference on Computing Education Research","first-page":"1","article-title":"A weak memory model in progvis: Verification and improved accuracy of visualizations of concurrent programs to aid student learning","author":"Str\u00f6mb\u00e4ck","year":"2022"},{"issue":"1","key":"10.1016\/j.hcc.2025.100377_b38","doi-asserted-by":"crossref","first-page":"335","DOI":"10.1109\/TVCG.2021.3114857","article-title":"Interactive visual pattern search on graph data via graph representation learning","volume":"28","author":"Song","year":"2022","journal-title":"IEEE Trans. Vis. Comput. Graphics"},{"issue":"12","key":"10.1016\/j.hcc.2025.100377_b39","doi-asserted-by":"crossref","first-page":"4010","DOI":"10.14778\/3611540.3611608","article-title":"VisualNeo: Bridging the gap between visual query interfaces and graph query engines","volume":"16","author":"Huang","year":"2023","journal-title":"Proc. VLDB Endow."},{"key":"10.1016\/j.hcc.2025.100377_b40","series-title":"Proceedings of the 25th Brazilian Symposium on Programming Languages","first-page":"75","article-title":"Graphs based on IR as representation of code: Types and insights","author":"Faustino","year":"2021"},{"key":"10.1016\/j.hcc.2025.100377_b41","unstructured":"Fraunhofer, Fraunhofer AISEC, URL https:\/\/github.com\/Fraunhofer-AISEC."},{"key":"10.1016\/j.hcc.2025.100377_b42","doi-asserted-by":"crossref","unstructured":"N. Francis, A. Green, P. Guagliardo, L. Libkin, T. Lindaaker, V. Marsault, S. Plantikow, M. Rydberg, P. Selmer, A. Taylor, Cypher: An evolving query language for property graphs, in: Proceedings of the 2018 International Conference on Management of Data, 2018, pp. 1433\u20131445.","DOI":"10.1145\/3183713.3190657"},{"key":"10.1016\/j.hcc.2025.100377_b43","unstructured":"Neo4j, Queries - Cypher Manual, URL https:\/\/neo4j.com\/docs\/cypher-manual\/5\/queries\/."},{"key":"10.1016\/j.hcc.2025.100377_b44","unstructured":"Neo4jBloom, Bloom, URL https:\/\/neo4j.com\/product\/bloom\/."},{"issue":"10","key":"10.1016\/j.hcc.2025.100377_b45","doi-asserted-by":"crossref","first-page":"2602","DOI":"10.1109\/TSE.2024.3447671","article-title":"Yuga: Automatically detecting lifetime annotation bugs in the rust language","volume":"50","author":"Nitin","year":"2024","journal-title":"IEEE Trans. Softw. Eng."},{"key":"10.1016\/j.hcc.2025.100377_b46","series-title":"Eleventh International Conference on Digital Image Processing (ICDIP 2019)","first-page":"581","article-title":"Mapping and visualization of complex relational structures in the graph form using the neo4j graph database","volume":"11179","author":"Sr","year":"2019"}],"container-title":["High-Confidence Computing"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/api.elsevier.com\/content\/article\/PII:S2667295225000819?httpAccept=text\/xml","content-type":"text\/xml","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/api.elsevier.com\/content\/article\/PII:S2667295225000819?httpAccept=text\/plain","content-type":"text\/plain","content-version":"vor","intended-application":"text-mining"}],"deposited":{"date-parts":[[2026,9,24]],"date-time":"2026-09-24T15:49:50Z","timestamp":1790264990000},"score":1,"resource":{"primary":{"URL":"https:\/\/linkinghub.elsevier.com\/retrieve\/pii\/S2667295225000819"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2026,9]]},"references-count":46,"journal-issue":{"issue":"3","published-print":{"date-parts":[[2026,9]]}},"alternative-id":["S2667295225000819"],"URL":"https:\/\/doi.org\/10.1016\/j.hcc.2025.100377","relation":{},"ISSN":["2667-2952"],"issn-type":[{"value":"2667-2952","type":"print"}],"subject":[],"published":{"date-parts":[[2026,9]]},"assertion":[{"value":"Elsevier","name":"publisher","label":"This article is maintained by"},{"value":"Enhancing concurrency bug detection in Rust programs through LLVM IR based graph visualization","name":"articletitle","label":"Article Title"},{"value":"High-Confidence Computing","name":"journaltitle","label":"Journal Title"},{"value":"https:\/\/doi.org\/10.1016\/j.hcc.2025.100377","name":"articlelink","label":"CrossRef DOI link to publisher maintained version"},{"value":"article","name":"content_type","label":"Content Type"},{"value":"\u00a9 2025 The Author(s). Published by Elsevier B.V. on behalf of Shandong University.","name":"copyright","label":"Copyright"}],"article-number":"100377"}}