Overview
RuntimeSearch is a project designed to make debugging easier for developers. It is based on a paper entitled “RuntimeSearch: Ctrl+F for a Running Program” from the ACM Automated Software Engineering Conference. Our goal is to allow users to search for strings, objects, and variables during the runtime of their program. This is especially useful for times when a simple “ctrl+f” wouldn’t work since strings and attributes of objects may not appear directly in source code. For example, concatenating “hello” and “world” in order to produce “helloworld” could be identified with RuntimeSearch, but not by simply using “ctrl+f” and searching for “helloworld.” We chose to implement RuntimeSearch as a plugin in the IntelliJ IDE for Java development, although RuntimeSearch is not inherently language or IDE specific.
Runtime
Search
![](../static/images/runtimesearch.png)
Details
In order to implement RuntimeSearch in the IntelliJ IDE, we needed to add extended capability to both Java's built-in debugger and the user's program in which the search would take place. The two main, separate processes are the debugger with extended capabiliy and the user's program with extended capability.
![](../static/images/extended_capability.png)
![](../static/images/regular.png)
![](../static/images/instrumentation.png)
![](../static/images/operations.png)
![](../static/images/executor.png)
![](../static/images/tool_window.png)
![](../static/images/rmi.png)
![](../static/images/communication.png)
Important Links
Meet the Team
![]() |
Josh Gerstein, '19
Josh primarily worked on the Java agent, and the part of the plugin that runs user's code with the agent. He enjoys eating good food and listening to podcasts. He hopes to study theoretical computer science and/or mathematical logic in the future.
|
![]() |
Anton Nagy, '19
Anton’s contributions to the project lie mainly on the plugin side, along with implementing the regex and fuzzy matching search types on the agent side. Outside of academics, Anton enjoys playing soccer, watching movies, and spending time with friends and family. He hopes to continuously pursue interests in computer science through personal projects.
|
![]() |
Thomas Scruggs, '19
Thomas’s focus in this project was in building out the plugin side of RuntimeSearch. He also worked on creating the different search methods for the plugin. In his spare time, he enjoys cooking, playing badminton, and leading the Carleton Bridge Club. In the future, Thomas plans to continue undertaking new and interesting side projects and expanding his knowledge as a software engineer.
|
![]() |
Noah Someck, '19
Noah's main contributions on this project included implementing RMI communication and helping out with creating both the plugin and the Java agent. Some of his hobbies include singing, traveling, and making mobile applications. In the future, he plans on continuing to work on his own projects, such as coding Python scripts, developing games, and working on cross-platform applications.
|