Are you an engineering student with focus on programming? Take a look at our master's thesis proposals!
For a compiler developer, it sometimes happens that a modification of the code, the addition of new functionality, or a bug fix, has unintended side effects that result in the compiler generating incorrect code. This will show up during testing, but for complex test programs it is often a tedious task of tracking down the problem. The “parallel” debugger is meant as a tool to simplify that process.
The task is to develop a parallel debugger that should start two debug sessions in parallel, one with a binary compiled with an unchanged compiler and one with a binary compiled with the changed compiler. The same commands should be issued to both debug sessions and the debugger should stop when the state differs between the two debug sessions.
IAR Embedded Workbench is a C/C++ Integrated Development Environment (IDE). I compiles and links C/C++ source code into executable code and includes a debugger to help finding problems in the resulting application. The compiler generates debug information that is used for supporting source level debugging of the application. When an application is built for debugging, the information should be both correct and complete. However, when different levels of optimization are applied, completeness (and sometimes correctness) can degrade in various ways
The task is to develop a way to automatically verify correctness and completeness of a significant part of the debug information.