Open PhD position on debugging at Inria Lille

SC
Steven Costiou
Thu, Feb 8, 2024 9:06 AM

Hello,

we have a PhD position opening at Lille, France.
See all details here:
https://recrutement.inria.fr/public/classic/fr/offres/2024-07154

Steven./
/

/Summary of the research proposal:/

/###
Application development inevitably introduces bugs. Often, it's not
clear why a code change introduced a bug. To find this cause-and-effect
relationship and debug more efficiently, developers can sometimes rely
on the existence of a previous version of the code without the bug. Yet,
traditional debugging tools are not designed for this kind of work,
making it a tedious operation.

In this thesis, we propose an approach that enables us to understand and
to debug an application in a live system, such as Pharo or Python, by
comparing two executions with different results: one execution succeeds
and the other fails.

Based on this hypothesis, we propose in this thesis to answer the
following challenges:

  • How to detect divergence, i.e. different behavior between two
    executions of a program?
  • How can we reduce the cost in time, memory and energy consumption of
    detecting divergence(s) on long executions?
  • What are the criteria for deciding whether a divergence is normal or
    unauthorized?
  • What about detecting multiple divergences in the same program?
  • What abstractions are needed to compare two executions of a program
    and detect divergences?

To meet these challenges, in addition to a precise state-of-the-art on
debugging techniques, the PhD student will study concrete cases of
program execution and propose a tool to be integrated into Pharo.
/

Hello, we have a PhD position opening at Lille, France. See all details here: https://recrutement.inria.fr/public/classic/fr/offres/2024-07154 Steven./ / /Summary of the research proposal:/ /### Application development inevitably introduces bugs. Often, it's not clear why a code change introduced a bug. To find this cause-and-effect relationship and debug more efficiently, developers can sometimes rely on the existence of a previous version of the code without the bug. Yet, traditional debugging tools are not designed for this kind of work, making it a tedious operation. In this thesis, we propose an approach that enables us to understand and to debug an application in a *live system*, such as Pharo or Python, by comparing two executions with different results: one execution succeeds and the other fails. Based on this hypothesis, we propose in this thesis to answer the following challenges: - How to detect divergence, i.e. different behavior between two executions of a program? - How can we reduce the cost in time, memory and energy consumption of detecting divergence(s) on long executions? - What are the criteria for deciding whether a divergence is normal or unauthorized? - What about detecting multiple divergences in the same program? - What abstractions are needed to compare two executions of a program and detect divergences? To meet these challenges, in addition to a precise state-of-the-art on debugging techniques, the PhD student will study concrete cases of program execution and propose a tool to be integrated into Pharo. /