Abstract
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.
This article is based upon work from COST Action ARVI IC1402, supported by COST (European Cooperation in Science and Technology).
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
Notes
- 1.
- 2.
The graphviz dot notation was chosen because LamaConv can produce it, for its ubiquity, and for the ease with which automata can be visualized.
References
Aalav, H., Avrunin, G., Corbett, J., Dillon, L., Dwyer, M., Pasareanu, C.: Specification patterns. http://patterns.projects.cis.ksu.edu/. Accessed 13 Aug 2015
Apache Software Foundation: ab - Apache HTTP server benchmarking tool. https://httpd.apache.org/docs/2.4/programs/ab.html
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)
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)
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)
Bauer, A., Leucker, M., Schallhart, C.: Runtime verification for LTL and TLTL. ACM Trans. Softw. Eng. Methodol. 20(4), 1–64 (2011)
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)
Cantrill, B.: Hidden in plain sight. ACM Queue 4(1), 26–36 (2006)
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)
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)
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)
Gregg, B.: DTrace pid Provider Overhead (2011). http://dtrace.org/blogs/brendan/2011/02/18/dtrace-pid-provider-overhead/
Gregg, B., Mauro, J.: DTrace: Dynamic Tracing in Oracle Solaris, Mac OS X, and FreeBSD. Prentice Hall Professional, Upper Saddle River (2011)
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)
Kupferman, O., Vardi, M.Y.: Model checking of safety properties. Formal Meth. Syst. Des. 19(3), 291–314 (2001)
Laddad, R.: AspectJ in Action, 2nd edn. Manning Publications, Cherry Hill (2009)
Node.js Foundation. Node.js. https://nodejs.org/en/
Oracle Corporation: DTrace Guide for Oracle Solaris 11. Oracle Corporation, Redwood City (2012)
PostgreSQL Global Development Group: PostgreSQL. http://www.postgresql.org/
PostgreSQL Global Development Group: PostgreSQL Documentation: Dynamic Tracing. http://www.postgresql.org/docs/current/static/dynamic-trace.html
Rosenberg, C.M.: Leveraging DTrace for runtime verification. Master thesis, Department of Informatics, Faculty of Mathematics and Natural Sciences, University of Oslo, May 2016
Scheffel, T., Schmitz, M., et al.: LamaConv-logics and automata converter library. http://www.isp.uni-luebeck.de/lamaconv
Stolz, V.: Temporal assertions with parametrized propositions. J. Log. Comput. 20(3), 743–757 (2010)
Stolz, V., Bodden, E.: Temporal assertions using AspectJ. Electron. Notes Theoret. Comput. Sci. 144(4), 109–124 (2006)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2016 Springer International Publishing AG
About this paper
Cite this paper
Rosenberg, C.M., Steffen, M., Stolz, V. (2016). Leveraging DTrace for Runtime Verification. In: Falcone, Y., Sánchez, C. (eds) Runtime Verification. RV 2016. Lecture Notes in Computer Science(), vol 10012. Springer, Cham. https://doi.org/10.1007/978-3-319-46982-9_20
Download citation
DOI: https://doi.org/10.1007/978-3-319-46982-9_20
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-46981-2
Online ISBN: 978-3-319-46982-9
eBook Packages: Computer ScienceComputer Science (R0)