default search action
46th ICSE 2024: Lisbon, Portugal
- Proceedings of the 46th IEEE/ACM International Conference on Software Engineering, ICSE 2024, Lisbon, Portugal, April 14-20, 2024. ACM 2024
Keynotes
- Rupak Majumdar:
Challenges and Opportunities in Model Checking Large-scale Distributed Systems. 1:1-1:2 - Martin C. Rinard:
Software Engineering Research in a World with Generative Artificial Intelligence. 2:1-2:5 - Carol J. Smith:
Trustworthy by Design. 3:1-3:4
AI&SE Autocoding for Program Repair and Related Concepts
- Yun Peng, Shuzheng Gao, Cuiyun Gao, Yintong Huo, Michael R. Lyu:
Domain Knowledge Matters: Improving Prompts with Fix Templates for Repairing Python Type Errors. 4:1-4:13 - Wenkang Zhong, Chuanyi Li, Kui Liu, Tongtong Xu, Jidong Ge, Tegawendé F. Bissyandé, Bin Luo, Vincent Ng:
Practical Program Repair via Preference-based Ensemble Strategy. 5:1-5:13 - Martin Tappler, Andrea Pferscher, Bernhard K. Aichernig, Bettina Könighofer:
Learning and Repair of Deep Reinforcement Learning Policies from Fuzz-Testing Data. 6:1-6:13 - Wai Kin Wong, Huaijin Wang, Zongjie Li, Shuai Wang:
BinAug: Enhancing Binary Similarity Analysis with Low-Cost Input Repairing. 7:1-7:13 - Jianan Ma, Pengfei Yang, Jingyi Wang, Youcheng Sun, Cheng-Chao Huang, Zhen Wang:
VeRe: Verification Guided Synthesis for Repairing Deep Neural Networks. 8:1-8:13 - Tianlin Li, Yue Cao, Jian Zhang, Shiqian Zhao, Yihao Huang, Aishan Liu, Qing Guo, Yang Liu:
RUNNER: Responsible UNfair NEuron Repair for Enhancing Deep Neural Network Fairness. 9:1-9:13 - He Ye, Martin Monperrus:
ITER: Iterative Neural Repair for Multi-Location Patches. 10:1-10:13
Applications of LLM and Other AI Technologies
- Liuqing Chen, Yunnong Chen, Shuhong Xiao, Yaxuan Song, Lingyun Sun, Yankun Zhen, Tingting Zhou, Yanfang Chang:
EGFE: End-to-end Grouping of Fragmented Elements in UI Designs with Multimodal Learning. 11:1-11:12 - Cuiying Gao, Gaozhun Huang, Heng Li, Bang Wu, Yueming Wu, Wei Yuan:
A Comprehensive Study of Learning-based Android Malware Detectors under Challenging Environments. 12:1-12:13 - Antonio Mastropaolo, Fiorella Zampetti, Gabriele Bavota, Massimiliano Di Penta:
Toward Automatically Completing GitHub Workflows. 13:1-13:12 - Junjielong Xu, Ziang Cui, Yuan Zhao, Xu Zhang, Shilin He, Pinjia He, Liqun Li, Yu Kang, Qingwei Lin, Yingnong Dang, Saravan Rajmohan, Dongmei Zhang:
UniLog: Automatic Logging via LLM and In-Context Learning. 14:1-14:12 - Yutong Wang, Cindy Rubio-González:
Predicting Performance and Accuracy of Mixed-Precision Programs for Precision Tuning. 15:1-15:13 - Benjamin Steenhoek, Hongyang Gao, Wei Le:
Dataflow Analysis-Inspired Deep Learning for Efficient Vulnerability Detection. 16:1-16:13 - Aidan Z. H. Yang, Claire Le Goues, Ruben Martins, Vincent J. Hellendoorn:
Large Language Models for Test-Free Fault Localization. 17:1-17:12
Analysis and Debugging
- Yuchao Huang, Junjie Wang, Zhe Liu, Yawen Wang, Song Wang, Chunyang Chen, Yuanzhe Hu, Qing Wang:
CrashTranslator: Automatically Reproducing Mobile Application Crashes Directly from Stack Trace. 18:1-18:13 - Yuqi Guo, Shihao Zhu, Yan Cai, Liang He, Jian Zhang:
Reorder Pointer Flow in Sound Concurrency Bug Prediction. 19:1-19:13 - Aditya Thimmaiah, Leonidas Lampropoulos, Christopher J. Rossbach, Milos Gligoric:
Object Graph Programming. 20:1-20:13 - Brent Pappas, Paul Gazzillo:
Semantic Analysis of Macro Usage for Portability. 21:1-21:12 - Adina Deiner, Gordon Fraser:
NuzzleBug: Debugging Block-Based Programs in Scratch. 22:1-22:13
Analytics
- Xiaoyun Li, Hongyu Zhang, Van-Hoang Le, Pengfei Chen:
LogShrink: Effective Log Compression by Leveraging Commonality and Variability of Log Data. 23:1-23:12 - Chenghao Li, Yifei Wu, Wenbo Shen, Zichen Zhao, Rui Chang, Chengwei Liu, Yang Liu, Kui Ren:
Demystifying Compiler Unstable Feature Usage and Impacts in the Rust Ecosystem. 24:1-24:13 - Islem Bouzenia, Michael Pradel:
Resource Usage and Optimization Opportunities in Workflows of GitHub Actions. 25:1-25:12 - Mingyuan Huang, Jiachi Chen, Zigui Jiang, Zibin Zheng:
Revealing Hidden Threats: An Empirical Study of Library Misuse in Smart Contracts. 26:1-26:12 - Yue Li, Zhong Ren, Zhiqi Wang, Lanxin Yang, Liming Dong, Chenxing Zhong, He Zhang:
Fine-SE: Integrating Semantic Features and Expert Features for Software Effort Estimation. 27:1-27:12
Dependability
- Ariel Gorenstein, Shahar Maoz, Jan Oliver Ringert:
Kind Controllers and Fast Heuristics for Non-Well-Separated GR(1) Specifications. 28:1-28:12 - Felix Wallner, Bernhard K. Aichernig, Christian Burghard:
It's Not a Feature, It's a Bug: Fault-Tolerant Model Mining from Noisy Data. 29:1-29:13 - Pingchuan Ma, Zhenlan Ji, Peisen Yao, Shuai Wang, Kui Ren:
Enabling Runtime Verification of Causal Discovery Algorithms with Automated Conditional Independence Reasoning. 30:1-30:13
DNN and Language Models for Code
- Binhang Qi, Hailong Sun, Hongyu Zhang, Ruobing Zhao, Xiang Gao:
Modularizing while Training: A New Paradigm for Modularizing DNN Models. 31:1-31:12 - Lipeng Ma, Weidong Yang, Bo Xu, Sihang Jiang, Ben Fei, Jiaqing Liang, Mingjie Zhou, Yanghua Xiao:
KnowLog: Knowledge Enhanced Pre-trained Language Model for Log Understanding. 32:1-32:13 - Changan Niu, Chuanyi Li, Vincent Ng, David Lo, Bin Luo:
FAIR: Flow Type-Aware Pre-Training of Compiler Intermediate Representations. 33:1-33:12 - Qi Guo, Junming Cao, Xiaofei Xie, Shangqing Liu, Xiaohong Li, Bihuan Chen, Xin Peng:
Exploring the Potential of ChatGPT in Automated Code Refinement: An Empirical Study. 34:1-34:13 - Boxi Yu, Jiayi Yao, Qiuai Fu, Zhiqing Zhong, Haotian Xie, Yaoliang Wu, Yuchi Ma, Pinjia He:
Deep Learning or Classical Machine Learning? An Empirical Study on Log-Based Anomaly Detection. 35:1-35:13 - Yangruibo Ding, Benjamin Steenhoek, Kexin Pei, Gail E. Kaiser, Wei Le, Baishakhi Ray:
TRACED: Execution-aware Pre-training for Source Code. 36:1-36:12 - Hao Yu, Bo Shen, Dezhi Ran, Jiaxin Zhang, Qi Zhang, Yuchi Ma, Guangtai Liang, Ying Li, Qianxiang Wang, Tao Xie:
CoderEval: A Benchmark of Pragmatic Code Generation with Generative Pre-trained Models. 37:1-37:12 - Shibbir Ahmed, Hongyang Gao, Hridesh Rajan:
Inferring Data Preconditions from Deep Learning Models for Trustworthy Prediction in Deployment. 38:1-38:13
Evolution
- Mingyang Geng, Shangwen Wang, Dezun Dong, Haotian Wang, Ge Li, Zhi Jin, Xiaoguang Mao, Xiangke Liao:
Large Language Models are Few-Shot Summarizers: Multi-Intent Comment Generation via In-Context Learning. 39:1-39:13 - Junayed Mahmud, Nadeeshan De Silva, Safwat Ali Khan, Seyed Hooman Mostafavi, S. M. Hasan Mansur, Oscar Chaparro, Andrian Marcus, Kevin Moran:
On Using GUI Interaction Data to Improve Text Retrieval-based Bug Localization. 40:1-40:13 - Pengcheng Ren, Chaoshun Zuo, Xiaofeng Liu, Wenrui Diao, Qingchuan Zhao, Shanqing Guo:
DEMISTIFY: Identifying On-device Machine Learning Models Stealing and Reuse Vulnerabilities in Mobile Apps. 41:1-41:13 - Yang Zhang, Yiwen Wu, Tingting Chen, Tao Wang, Hui Liu, Huaimin Wang:
How do Developers Talk about GitHub Actions? Evidence from Online Software Development Community. 42:1-42:13 - Felipe Fronchetti, Nico Ritschel, Logan Schorr, Chandler Barfield, Gabriella Chang, Rodrigo O. Spínola, Reid Holmes, David C. Shepherd:
Block-based Programming for Two-Armed Robots: A Comparative Study. 43:1-43:12 - Trevor Stalnaker, Nathan Wintersgill, Oscar Chaparro, Massimiliano Di Penta, Daniel M. Germán, Denys Poshyvanyk:
BOMs Away! Inside the Minds of Stakeholders: A Comprehensive Study of Bills of Materials for Software Systems. 44:1-44:13
Fuzzing and Other Test Generation Methods
- Lianglu Pan, Shaanan Cohney, Toby Murray, Van-Thuan Pham:
EDEFuzz: A Web API Fuzzer for Excessive Data Exposures. 45:1-45:12 - Yuancheng Jiang, Jiahao Liu, Jinsheng Ba, Roland H. C. Yap, Zhenkai Liang, Manuel Rigger:
Detecting Logic Bugs in Graph Database Management Systems via Injective and Surjective Graph Query Transformation. 46:1-46:12 - Martin Gruber, Muhammad Firhard Roslan, Owain Parry, Fabian Scharnböck, Phil McMinn, Gordon Fraser:
Do Automatic Test Generation Tools Generate Flaky Tests? 47:1-47:12 - Junqiang Li, Senyi Li, Keyao Li, Falin Luo, Hongfang Yu, Shanshan Li, Xiang Li:
ECFuzz: Effective Configuration Fuzzing for Large-Scale Systems. 48:1-48:12 - Philipp Straubinger, Gordon Fraser:
Improving Testing Behavior by Gamifying IntelliJ. 49:1-49:13 - Jiarun Dai, Bufan Gao, Mingyuan Luo, Zongan Huang, Zhongrui Li, Yuan Zhang, Min Yang:
SCTrans: Constructing a Large Public Scenario Dataset for Simulation Testing of Autonomous Driving Systems. 50:1-50:13
Human and Social Aspects, and Requirements
- Victoria Jackson, Rafael Prikladnicki, André van der Hoek:
Co-Creation in Fully Remote Software Teams. 51:1-51:12 - Jenny T. Liang, Chenyang Yang, Brad A. Myers:
A Large-Scale Survey on the Usability of AI Programming Assistants: Successes and Challenges. 52:1-52:13 - Emily Judith Arteaga Garcia, João Felipe Nicolaci Pimentel, Zixuan Feng, Marco Aurélio Gerosa, Igor Steinmacher, Anita Sarma:
How to Support ML End-User Programmers through a Conversational Agent. 53:1-53:12 - Ze Shi Li, Nowshin Nawar Arony, Kezia Devathasan, Manish Sihag, Neil A. Ernst, Daniela E. Damian:
Unveiling the Life Cycle of User Feedback: Best Practices from Software Practitioners. 54:1-54:13 - Hongbo Fang, James D. Herbsleb, Bogdan Vasilescu:
Novelty Begets Popularity, But Curbs Participation - A Macroscopic View of the Python Open-Source Ecosystem. 55:1-55:11 - Adriana Meza Soria, Taylor Lopez, Elizabeth Seero, Negin Mashhadi, Emily Evans, Janet E. Burge, André van der Hoek:
Characterizing Software Maintenance Meetings: Information Shared, Discussion Outcomes, and Information Captured. 56:1-56:13 - Jack Jamieson, Naomi Yamashita, Eureka Foong:
Predicting open source contributor turnover from value-related discussions: An analysis of GitHub issues. 57:1-57:13 - Alexander Lill, André N. Meyer, Thomas Fritz:
On the Helpfulness of Answering Developer Questions on Discord with Similar Conversations and Posts from the Past. 58:1-58:13
Security
- Jie Hu, Yue Duan, Heng Yin:
Marco: A Stochastic Asynchronous Concolic Explorer. 59:1-59:12 - Stefanos Chaliasos, Marcos Antonios Charalambous, Liyi Zhou, Rafaila Galanopoulou, Arthur Gervais, Dimitris Mitropoulos, Benjamin Livshits:
Smart Contract and DeFi Security Tools: Do They Meet the Needs of Practitioners? 60:1-60:13 - Marcos Tileria, Jorge Blasco, Santanu Kumar Dash:
DocFlow: Extracting Taint Specifications from Software Documentation. 61:1-61:12 - Adriana Sejfia, Satyaki Das, Saad Shafiq, Nenad Medvidovic:
Toward Improved Deep Learning-based Vulnerability Detection. 62:1-62:12 - Yongliang Chen, Ruoqin Tang, Chaoshun Zuo, Xiaokuan Zhang, Lei Xue, Xiapu Luo, Qingchuan Zhao:
Attention! Your Copied Data is Under Monitoring: A Systematic Study of Clipboard Usage in Android Apps. 63:1-63:13 - Ruichao Liang, Jing Chen, Kun He, Yueming Wu, Gelei Deng, Ruiying Du, Cong Wu:
PonziGuard: Detecting Ponzi Schemes on Ethereum with Contract Runtime Behavior Graph (CRBG). 64:1-64:12 - Aniruddhan Murali, Noble Saji Mathews, Mahmoud Alfadel, Meiyappan Nagappan, Meng Xu:
FuzzSlice: Pruning False Positives in Static Analysis Warnings through Function-Level Fuzzing. 65:1-65:13 - Chaopeng Dong, Siyuan Li, Shouguo Yang, Yang Xiao, Yongpan Wang, Hong Li, Zhi Li, Limin Sun:
LibvDiff: Library Version Difference Guided OSS Version Identification in Binaries. 66:1-66:12
Testing with and for AI
- Sidong Feng, Chunyang Chen:
Prompting Is All You Need: Automated Android Bug Replay with Large Language Models. 67:1-67:13 - Neelofar, Aldeida Aleti:
Towards Reliable AI: Adequacy Metrics for Ensuring the Quality of System-level Testing of Autonomous Vehicles. 68:1-68:12 - Yakun Zhang, Wenjie Zhang, Dezhi Ran, Qihao Zhu, Chengfeng Dou, Dan Hao, Tao Xie, Lu Zhang:
Learning-based Widget Matching for Migrating GUI Test Cases. 69:1-69:13 - Yinlin Deng, Chunqiu Steven Xia, Chenyuan Yang, Shizhuo Dylan Zhang, Shujing Yang, Lingming Zhang:
Large Language Models are Edge-Case Generators: Crafting Unusual Programs for Fuzzing Deep Learning Libraries. 70:1-70:13 - Yuanhong Lan, Yifei Lu, Zhong Li, Minxue Pan, Wenhua Yang, Tian Zhang, Xuandong Li:
Deeply Reinforcing Android GUI Testing with Deep Reinforcement Learning. 71:1-71:13
AI&SE Code Models and Generated Code
- Zhou Yang, Zhipeng Zhao, Chenyu Wang, Jieke Shi, Dongsun Kim, DongGyun Han, David Lo:
Unveiling Memorization in Code Models. 72:1-72:13 - Junkai Chen, Xing Hu, Zhenhao Li, Cuiyun Gao, Xin Xia, David Lo:
Code Search is All You Need? Improving Code Suggestions with Code Search. 73:1-73:13 - Zongjie Li, Chaozheng Wang, Pingchuan Ma, Chaowei Liu, Shuai Wang, Daoyuan Wu, Cuiyun Gao, Yang Liu:
On Extracting Specialized Code Abilities from Large Language Models: A Feasibility Study. 74:1-74:13 - Zhensu Sun, Xiaoning Du, Fu Song, Shangwen Wang, Li Li:
When Neural Code Completion Models Size up the Situation: Attaining Cheaper and Faster Completion through Dynamic Model Inference. 75:1-75:12 - Qihao Zhu, Qingyuan Liang, Zeyu Sun, Yingfei Xiong, Lu Zhang, Shengyu Cheng:
GrammarT5: Grammar-Integrated Pretrained Encoder-Decoder Neural Model for Code. 76:1-76:13 - Zhenhao Zhou, Chaofeng Sha, Xin Peng:
On Calibration of Pre-trained Code Models. 77:1-77:13 - Ali Al-Kaswan, Maliheh Izadi, Arie van Deursen:
Traces of Memorisation in Large Language Models for Code. 78:1-78:12 - Maliheh Izadi, Jonathan Katzy, Tim van Dam, Marc Otten, Razvan Mihai Popescu, Arie van Deursen:
Language Models for Code Completion: A Practical Evaluation. 79:1-79:13 - Shuzheng Gao, Wenxin Mao, Cuiyun Gao, Li Li, Xing Hu, Xin Xia, Michael R. Lyu:
Learning in the Wild: Towards Leveraging Unlabeled Data for Effectively Tuning Pre-trained Code Models. 80:1-80:13 - Xueying Du, Mingwei Liu, Kaixin Wang, Hanlin Wang, Junwei Liu, Yixuan Chen, Jiayi Feng, Chaofeng Sha, Xin Peng, Yiling Lou:
Evaluating Large Language Models in Class-Level Code Generation. 81:1-81:13 - Rangeet Pan, Ali Reza Ibrahimzada, Rahul Krishna, Divya Sankar, Lambert Pouguem Wassi, Michele Merler, Boris Sobolev, Raju Pavuluri, Saurabh Sinha, Reyhaneh Jabbarvand:
Lost in Translation: A Study of Bugs Introduced by Large Language Models while Translating Code. 82:1-82:13
AI&SE Program Repair
- Julian Aron Prenner, Romain Robbes:
Out of Context: How important is Local Context in Neural Program Repair? 83:1-83:13 - Hadeel Eladawy, Claire Le Goues, Yuriy Brun:
Automated Program Repair, What Is It Good For? Not Absolutely Nothing! 84:1-84:13 - Wenzhang Yang, Linhai Song, Yinxing Xue:
Rust-lancet: Automated Ownership-Rule-Violation Fixing with Behavior Preservation. 85:1-85:13 - Fairuz Nawer Meem, Justin Smith, Brittany Johnson:
Exploring Experiences with Automated Program Repair in Practice. 86:1-86:11 - Yiu Wai Chow, Luca Di Grazia, Michael Pradel:
PyTy: Repairing Static Type Errors in Python. 87:1-87:13 - Xin Zhou, Kisub Kim, Bowen Xu, DongGyun Han, David Lo:
Out of Sight, Out of Mind: Better Automatic Vulnerability Repair by Broadening Input Ranges and Sources. 88:1-88:13 - Changhua Luo, Wei Meng, Shuai Wang:
Strengthening Supply Chain Security with Fine-grained Safe Patch Identification. 89:1-89:12 - Shaoheng Cao, Minxue Pan, Yu Pei, Wenhua Yang, Tian Zhang, Linzhang Wang, Xuandong Li:
Comprehensive Semantic Repair of Obsolete GUI Test Scripts for Mobile Applications. 90:1-90:13 - Zunchen Huang, Chao Wang:
Constraint Based Program Repair for Persistent Memory Bugs. 91:1-91:12
AI&SE LLM and NN Applications and Other Aspects
- Yuxuan Jiang, Chaoyun Zhang, Shilin He, Zhihao Yang, Minghua Ma, Si Qin, Yu Kang, Yingnong Dang, Saravan Rajmohan, Qingwei Lin, Dongmei Zhang:
Xpert: Empowering Incident Management with Query Recommendations via Large Language Models. 92:1-92:13 - Timur Babakol, Yu David Liu:
Tensor-Aware Energy Accounting. 93:1-93:12 - Yuchen Cai, Aashish Yadavally, Abhishek Mishra, Genesis Montejo, Tien N. Nguyen:
Programming Assistant for Exception Handling with CodeBERT. 94:1-94:13 - Wenhan Wang, Yanzhou Li, Anran Li, Jian Zhang, Wei Ma, Yang Liu:
An Empirical Study on Noisy Label Learning for Program Understanding. 95:1-95:12 - Yanjie Gao, Yichen He, Xinze Li, Bo Zhao, Haoxiang Lin, Yoyo Liang, Jing Zhong, Hongyu Zhang, Jingzhou Wang, Yonghua Zeng, Keli Gui, Jie Tong, Mao Yang:
An Empirical Study on Low GPU Utilization of Deep Learning Jobs. 96:1-96:13 - Daye Nam, Andrew Macvean, Vincent J. Hellendoorn, Bogdan Vasilescu, Brad A. Myers:
Using an LLM to Help With Code Understanding. 97:1-97:13 - Yanqi Su, Dianshu Liao, Zhenchang Xing, Qing Huang, Mulong Xie, Qinghua Lu, Xiwei Xu:
Enhancing Exploratory Testing by Large Language Model and Knowledge Graph. 98:1-98:12 - Zeyang Ma, An Ran Chen, Dong Jae Kim, Tse-Hsun Chen, Shaowei Wang:
LLMParser: An Exploratory Study on Using Large Language Models for Log Parsing. 99:1-99:13 - Zhe Liu, Chunyang Chen, Junjie Wang, Mengzhuo Chen, Boyu Wu, Xing Che, Dandan Wang, Qing Wang:
Make LLM a Testing Expert: Bringing Human-like Interaction to Mobile GUI Testing via Functionality-aware Decisions. 100:1-100:13
Analysis
- Raphael J. Sofaer, Yaniv David, Mingqing Kang, Jianjia Yu, Yinzhi Cao, Junfeng Yang, Jason Nieh:
RogueOne: Detecting Rogue Updates via Differential Data-flow Analysis Using Trust Domains. 101:1-101:13 - Huijia Sun, Christopher M. Poskitt, Yang Sun, Jun Sun, Yuqi Chen:
ACAV: A Framework for Automatic Causality Analysis in Autonomous Vehicle Accident Recordings. 102:1-102:13 - Xiaohu Song, Ying Wang, Xiao Cheng, Guangtai Liang, Qianxiang Wang, Zhiliang Zhu:
Efficiently Trimming the Fat: Streamlining Software Dependencies with Java Reflection and Dependency Analysis. 103:1-103:12 - Kadiray Karakaya, Eric Bodden:
Symbol-Specific Sparsification of Interprocedural Distributive Environment Problems. 104:1-104:12 - Rongxin Wu, Yuxuan He, Jiafeng Huang, Chengpeng Wang, Wensheng Tang, Qingkai Shi, Xiao Xiao, Charles Zhang:
LibAlchemy: A Two-Layer Persistent Summary Design for Taming Third-Party Libraries in Static Bug-Finding Systems. 105:1-105:13 - Mohan Cui, Shuran Sun, Hui Xu, Yangfan Zhou:
Is unsafe an Achilles' Heel? A Comprehensive Study of Safety Requirements in Unsafe Rust Programming. 106:1-106:13 - Ruikai Huang, Manish Motwani, Idel Martinez, Alessandro Orso:
Generating REST API Specifications through Static Analysis. 107:1-107:13 - Xinyu Liu, Joy Arulraj, Alessandro Orso:
A Framework For Inferring Properties of User-Defined Functions. 108:1-108:11 - Xiao Cheng, Jiawei Wang, Yulei Sui:
Precise Sparse Abstract Execution via Cross-Domain Interaction. 109:1-109:12
Debugging
- Chenxi Zhang, Zhen Dong, Xin Peng, Bicheng Zhang, Miao Chen:
Trace-based Multi-Dimensional Root Cause Localization of Performance Issues in Microservice Systems. 110:1-110:12 - Yi Song, Xihao Zhang, Xiaoyuan Xie, Quanming Liu, Ruizhi Gao, Chenliang Xing:
ReClues: Representing and indexing failures in parallel debugging with program variables. 111:1-111:13