Dynamic Software Updating (DSU) is a technique for updating programs without restarting them. It is useful in systems that provide live programming or in system with high availability needs. As a common limitation, existing DSU systems cannot update active functions. Hence, they are unable to update long-running functions, such as the main loop in a web-server, or a state machine in an embedded system implemented as a loop. Updating active functions is challenging as it requires updating local variables and control flow to create a consistent state in the new version of the function. In this paper, we propose Active DSU, which updates the call stack to migrate data and control flow of active functions without the need to wait for the program to reach a particular state beforehand. This is achieved by replacing return addresses with stubs to avoid moving other stack frames on the call stack. Active DSU can migrate control flow automatically without input from the programmer in most cases.
Fri 25 OctDisplayed time zone: Pacific Time (US & Canada) change
13:50 - 15:30 | |||
13:50 25mTalk | Talking to Objects in Natural Language: Toward Semantic Tools for Exploratory ProgrammingRemote Onward! Papers Christoph Thiede Hasso Plattner Institute, University of Potsdam, Germany, Marcel Taeumel University of Potsdam; Hasso Plattner Institute, Lukas Böhme Hasso Plattner Institute, University of Potsdam, Potsdam, Germany, Robert Hirschfeld Hasso Plattner Institute; University of Potsdam DOI Media Attached File Attached | ||
14:25 25mTalk | Active DSU: Dynamic Software Updates for Active Functions Onward! Papers DOI | ||
15:00 25mTalk | Source-level debugging of compiler-optimised code: ill-posed, but not impossible Onward! Papers DOI |