Jul 12, 2024; Talk
Echtzeit-AGImpact of Program Variables on Fault Tolerance
Making sure that software is sufficiently hardened against faults to prevent undesired
system failures is not feasible without sophisticated tools to inject faults and observe the
resulting system behavior. In order to pinpoint which data structures are vulnerable
to faults, such tools need to provide a way to associate faulty memory locations with
program variables. For global variables this is trivial since their memory location is
fixed and known at compile-time, but for variables on the stack, which are allocated and
deallocated at runtime, this is a more complex problem.
In this thesis, the gdb-hook tool is introduced, which extends an existing fault tolerance tool called Fail* to allow for the extraction of information about program variables at runtime that is used by new analysis tools which associate the data with fault injection experiment results. The key idea behind the gdb-hook is that debuggers like GDB can be used to control a program’s execution and automatically interpret debug information to read out the memory locations of variables at runtime. This new piece of software is evaluated by executing the gdb-hook for six different programs as part of Fail*’s fault injection experiment workflow. In five out of the six tested programs, >80% of the program’s memory locations that resulted in abnormal system behavior after fault injection were able to be associated with program variables based on the information collected by the gdb-hook.
(Major Certificate)