Leveraging DTrace for Runtime Verification

  • Carl Martin Rosenberg
  • Martin Steffen
  • Volker Stolz
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 10012)


DTrace, short for “dynamic tracing”, is a powerful diagnostic tool and tracing framework. It is invaluable for performance monitoring, tuning, and for getting insights into almost any aspect of a running system. In this paper we investigate how we can leverage the DTrace operating system-level instrumentation framework [9] to conduct runtime verification. To this end, we develop graphviz2dtrace, a tool for producing monitor scripts in DTrace’s domain-specific scripting language D for specification formulas written in \(\text{ LTL }_{3}\), a three-valued variety of the well-known Linear Temporal Logic. We evaluate the tool by analyzing a small stack-implementation and a multi-process system.


  1. 1.
    Aalav, H., Avrunin, G., Corbett, J., Dillon, L., Dwyer, M., Pasareanu, C.: Specification patterns. http://patterns.projects.cis.ksu.edu/. Accessed 13 Aug 2015
  2. 2.
    Apache Software Foundation: ab - Apache HTTP server benchmarking tool. https://httpd.apache.org/docs/2.4/programs/ab.html
  3. 3.
    Barringer, H., Falcone, Y., Havelund, K., Reger, G., Rydeheard, D.: Quantified event automata: towards expressive and efficient runtime monitors. In: Giannakopoulou, D., Méry, D. (eds.) FM 2012. LNCS, vol. 7436, pp. 68–84. Springer, Heidelberg (2012)CrossRefGoogle Scholar
  4. 4.
    Bauer, A., Leucker, M., Schallhart, C.: Model-based runtime analysis of distributed reactive systems. In: 17th Australian Software Engineering Conference (ASWEC 2006). IEEE Computer Society (2006)Google Scholar
  5. 5.
    Bauer, A., Leucker, M., Schallhart, C.: Monitoring of real-time properties. In: Arun-Kumar, S., Garg, N. (eds.) FSTTCS 2006. LNCS, vol. 4337, pp. 260–272. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  6. 6.
    Bauer, A., Leucker, M., Schallhart, C.: Runtime verification for LTL and TLTL. ACM Trans. Softw. Eng. Methodol. 20(4), 1–64 (2011)CrossRefGoogle Scholar
  7. 7.
    Bodden, E., Stolz, V.: Tracechecks: defining semantic interfaces with temporal logic. In: Löwe, W., Südholt, M. (eds.) SC 2006. LNCS, vol. 4089, pp. 147–162. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  8. 8.
    Cantrill, B.: Hidden in plain sight. ACM Queue 4(1), 26–36 (2006)CrossRefGoogle Scholar
  9. 9.
    Cantrill, B., Shapiro, M.W., Leventhal, A.H.: Dynamic instrumentation of production systems. In: ATEC 2004 Proceedings of the Annual Conference on USENIX Annual Technical Conference. USENIX (2004)Google Scholar
  10. 10.
    Chachmon, N., Richins, D., Christensson, M., Cohn, R., Cui, W., Reddi, V.J.: Simulation and analysis engine for scale-out workloads. In: Proceedings of the 30th ACM on International Conference on Supercomputing. ACM (2016)Google Scholar
  11. 11.
    Ellson, J., Gansner, E.R., Koutsofios, L., North, S.C., Woodhull, G.: Graphviz - open source graph drawing tools. In: Mutzel, P., Jünger, M., Leipert, S. (eds.) GD 2001. LNCS, vol. 2265, p. 483. Springer, Heidelberg (2002)CrossRefGoogle Scholar
  12. 12.
    Gregg, B.: DTrace pid Provider Overhead (2011). http://dtrace.org/blogs/brendan/2011/02/18/dtrace-pid-provider-overhead/
  13. 13.
    Gregg, B., Mauro, J.: DTrace: Dynamic Tracing in Oracle Solaris, Mac OS X, and FreeBSD. Prentice Hall Professional, Upper Saddle River (2011)Google Scholar
  14. 14.
    Havelund, K., Joshi, R.: Experience with rule-based analysis of spacecraft logs. In: Artho, C., Ölveczky, P.C. (eds.) FTSCS 2014. CCIS, vol. 476, pp. 1–16. Springer, Heidelberg (2015)Google Scholar
  15. 15.
    Kupferman, O., Vardi, M.Y.: Model checking of safety properties. Formal Meth. Syst. Des. 19(3), 291–314 (2001)MathSciNetCrossRefMATHGoogle Scholar
  16. 16.
    Laddad, R.: AspectJ in Action, 2nd edn. Manning Publications, Cherry Hill (2009)Google Scholar
  17. 17.
    Node.js Foundation. Node.js. https://nodejs.org/en/
  18. 18.
    Oracle Corporation: DTrace Guide for Oracle Solaris 11. Oracle Corporation, Redwood City (2012)Google Scholar
  19. 19.
    PostgreSQL Global Development Group: PostgreSQL. http://www.postgresql.org/
  20. 20.
    PostgreSQL Global Development Group: PostgreSQL Documentation: Dynamic Tracing. http://www.postgresql.org/docs/current/static/dynamic-trace.html
  21. 21.
    Rosenberg, C.M.: Leveraging DTrace for runtime verification. Master thesis, Department of Informatics, Faculty of Mathematics and Natural Sciences, University of Oslo, May 2016Google Scholar
  22. 22.
    Scheffel, T., Schmitz, M., et al.: LamaConv-logics and automata converter library. http://www.isp.uni-luebeck.de/lamaconv
  23. 23.
    Stolz, V.: Temporal assertions with parametrized propositions. J. Log. Comput. 20(3), 743–757 (2010)MathSciNetCrossRefMATHGoogle Scholar
  24. 24.
    Stolz, V., Bodden, E.: Temporal assertions using AspectJ. Electron. Notes Theoret. Comput. Sci. 144(4), 109–124 (2006)CrossRefGoogle Scholar

Copyright information

© Springer International Publishing AG 2016

Authors and Affiliations

  • Carl Martin Rosenberg
    • 1
  • Martin Steffen
    • 1
  • Volker Stolz
    • 1
    • 2
  1. 1.Inst. for InformatikkUniversitetet i OsloOsloNorway
  2. 2.Inst. for Data- og RealfagHøgskolen i BergenBergenNorway

Personalised recommendations