Skip to main content

2018 | OriginalPaper | Buchkapitel

CauDEr: A Causal-Consistent Reversible Debugger for Erlang

verfasst von : Ivan Lanese, Naoki Nishida, Adrián Palacios, Germán Vidal

Erschienen in: Functional and Logic Programming

Verlag: Springer International Publishing

Aktivieren Sie unsere intelligente Suche, um passende Fachinhalte oder Patente zu finden.

search-config
loading …

Abstract

Programming languages based on the actor model, such as Erlang, avoid some concurrency bugs by design. However, other concurrency bugs, such as message order violations and livelocks, can still show up in programs. These hard-to-find bugs can be more easily detected by using causal-consistent reversible debugging, a debugging technique that allows one to traverse a computation both forward and backward. Most notably, causal consistency implies that, when going backward, an action can only be undone provided that its consequences, if any, have been undone beforehand. To the best of our knowledge, we present the first causal-consistent reversible debugger for Erlang, which may help programmers to detect and fix various kinds of bugs, including message order violations and livelocks.

Sie haben noch keine Lizenz? Dann Informieren Sie sich jetzt über unsere Produkte:

Springer Professional "Wirtschaft+Technik"

Online-Abonnement

Mit Springer Professional "Wirtschaft+Technik" erhalten Sie Zugriff auf:

  • über 102.000 Bücher
  • über 537 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Maschinenbau + Werkstoffe
  • Versicherung + Risiko

Jetzt Wissensvorsprung sichern!

Springer Professional "Technik"

Online-Abonnement

Mit Springer Professional "Technik" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 390 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Maschinenbau + Werkstoffe




 

Jetzt Wissensvorsprung sichern!

Springer Professional "Wirtschaft"

Online-Abonnement

Mit Springer Professional "Wirtschaft" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 340 Zeitschriften

aus folgenden Fachgebieten:

  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Versicherung + Risiko




Jetzt Wissensvorsprung sichern!

Fußnoten
1
Because of lack of space, we are not presenting the rules of \(\xrightarrow {\ell }\) here, but refer the interested reader to [13].
 
2
Actually, in this work, we only consider a single rollback request at a time, so \(\varPsi \) is always a singleton. Nevertheless, our formalisation considers that \(\varPsi \) is a set for notational convenience and, also, in order to accept multiple rollbacks in the future.
 
3
Actually, in CauDEr, uniqueness of variable names is enforced via renaming.
 
Literatur
3.
Zurück zum Zitat Claessen, K., et al.: Finding race conditions in Erlang with QuickCheck and PULSE. In: ICFP, pp. 149–160. ACM (2009) Claessen, K., et al.: Finding race conditions in Erlang with QuickCheck and PULSE. In: ICFP, pp. 149–160. ACM (2009)
6.
Zurück zum Zitat Fredlund, L.A., Svensson, H.: McErlang: a model checker for a distributed functional programming language. In: ICFP, pp. 125–136. ACM (2007)CrossRef Fredlund, L.A., Svensson, H.: McErlang: a model checker for a distributed functional programming language. In: ICFP, pp. 125–136. ACM (2007)CrossRef
8.
Zurück zum Zitat Giachino, E., Lanese, I., Mezzina, C.A., Tiezzi, F.: Causal-consistent rollback in a tuple-based language. J. Log. Algebr. Meth. Program. 88, 99–120 (2017)MathSciNetCrossRef Giachino, E., Lanese, I., Mezzina, C.A., Tiezzi, F.: Causal-consistent rollback in a tuple-based language. J. Log. Algebr. Meth. Program. 88, 99–120 (2017)MathSciNetCrossRef
9.
Zurück zum Zitat Giantsios, A., Papaspyrou, N., Sagonas, K.: Concolic testing for functional languages. In: PPDP, pp. 137–148. ACM (2015) Giantsios, A., Papaspyrou, N., Sagonas, K.: Concolic testing for functional languages. In: PPDP, pp. 137–148. ACM (2015)
10.
Zurück zum Zitat Gotovos, A., Christakis, M., Sagonas, K.: Test-driven development of concurrent programs using Concuerror. In: 10th ACM SIGPLAN Workshop on Erlang, pp. 51–61. ACM (2011) Gotovos, A., Christakis, M., Sagonas, K.: Test-driven development of concurrent programs using Concuerror. In: 10th ACM SIGPLAN Workshop on Erlang, pp. 51–61. ACM (2011)
11.
Zurück zum Zitat Landauer, R.: Irreversibility and heat generation in the computing process. IBM J. Res. Dev. 5, 183–191 (1961)MathSciNetCrossRef Landauer, R.: Irreversibility and heat generation in the computing process. IBM J. Res. Dev. 5, 183–191 (1961)MathSciNetCrossRef
12.
Zurück zum Zitat Lanese, I., Mezzina, C.A., Tiezzi, F.: Causal-consistent reversibility. Bull. EATCS 114, 19 (2014) Lanese, I., Mezzina, C.A., Tiezzi, F.: Causal-consistent reversibility. Bull. EATCS 114, 19 (2014)
15.
Zurück zum Zitat Lindahl, T., Sagonas, K.: Practical type inference based on success typings. In: PPDP, pp. 167–178. ACM Press (2006) Lindahl, T., Sagonas, K.: Practical type inference based on success typings. In: PPDP, pp. 167–178. ACM Press (2006)
16.
Zurück zum Zitat Lopez, C.T., Marr, S., Mössenböck, H., Boix, E.G.: A study of concurrency bugs and advanced development support for actor-based programs. CoRR abs/1706.07372 (2017) Lopez, C.T., Marr, S., Mössenböck, H., Boix, E.G.: A study of concurrency bugs and advanced development support for actor-based programs. CoRR abs/1706.07372 (2017)
18.
Zurück zum Zitat Papadakis, M., Sagonas, K.: A PropEr integration of types and function specifications with property-based testing. In: 10th ACM SIGPLAN Workshop on Erlang, pp. 39–50. ACM (2011) Papadakis, M., Sagonas, K.: A PropEr integration of types and function specifications with property-based testing. In: 10th ACM SIGPLAN Workshop on Erlang, pp. 39–50. ACM (2011)
19.
Zurück zum Zitat Shibanai, K., Watanabe, T.: Actoverse: a reversible debugger for actors. In: AGERE, pp. 50–57. ACM (2017) Shibanai, K., Watanabe, T.: Actoverse: a reversible debugger for actors. In: AGERE, pp. 50–57. ACM (2017)
21.
Zurück zum Zitat Svensson, H., Fredlund, L.A., Earle, C.B.: A unified semantics for future Erlang. In: 9th ACM SIGPLAN Workshop on Erlang, pp. 23–32. ACM (2010) Svensson, H., Fredlund, L.A., Earle, C.B.: A unified semantics for future Erlang. In: 9th ACM SIGPLAN Workshop on Erlang, pp. 23–32. ACM (2010)
Metadaten
Titel
CauDEr: A Causal-Consistent Reversible Debugger for Erlang
verfasst von
Ivan Lanese
Naoki Nishida
Adrián Palacios
Germán Vidal
Copyright-Jahr
2018
DOI
https://doi.org/10.1007/978-3-319-90686-7_16

Premium Partner