Giter VIP home page Giter VIP logo

kondziu / r-dyntrace Goto Github PK

View Code? Open in Web Editor NEW

This project forked from prl-prg/r-dyntrace

0.0 1.0 0.0 47.38 MB

Dynamic tracing support for R

License: GNU General Public License v2.0

Makefile 0.81% Shell 1.26% M4 1.16% R 36.45% Roff 0.11% TeX 0.73% Fortran 24.05% C 32.62% C++ 0.55% Assembly 0.02% HTML 0.02% Inno Setup 0.13% Objective-C 0.84% TypeScript 0.01% Tcl 0.64% Yacc 0.54% Java 0.01% Perl 0.07%

r-dyntrace's Introduction

R-dyntrace

Travis build status

R-dyntrace is a modified version of R interpreter that contains probes embedded inside it. These probes get called at key events inside the interpreter with relevant interpreter state information. Currently, R-3.5.0 is supported.

Probes

Currently supported probes and the corresponding events are tabulated below.

Setup/Cleanup Probes

Event Probe
Tracing entry dyntrace_entry(expression, environment)
Tracing exit dyntrace_exit(expression, environment, result, error)

Function Probes

Event Probe
Closure entry closure_entry(call, op, rho)
Closure exit closure_exit(call, op, rho, retval)
Builtin entry builtin_entry(call, op, rho)
Builtin exit builtin_exit(call, op, rho, retval)
Special entry special_entry(call, op, rho)
Special exit special_exit(call, op, rho, retval)

Promise Probes

Event Probe
Promise force entry promise_force_entry(promise)
Promise force exit promise_force_exit(promise)
Promise value lookup promise_value_lookup(promise)
Promise value assign promise_value_assign(promise, value)
Promise expression lookup promise_expression_lookup(promise)
Promise expression assign promise_expression_assign(promise, expression)
Promise environment lookup promise_environment_lookup(promise)
Promise environment assign promise_environment_assign(promise, environment)

Eval Probes

Event Probe
Eval entry eval_entry(expression, rho)
Eval exit eval_exit(expression, rho, return_value)

GC Probes

Event Probe
GC entry gc_entry(size_needed)
GC exit gc_exit(gc_count)
GC unmark gc_unmark(object)
GC allocate gc_allocate(object)

Context Probes

Event Probe
Context entry context_entry(context)
Context exit context_exit(context)
Context jump context_jump(context, return_value, restart)

S3 Probes

Event Probe
S3 entry S3_generic_entry(generic, object)
S3 exit S3_generic_exit(generic, object, retval)
S3 dispatch entry S3_dispatch_entry(generic, cls, method, object)
S3 dispatch exit S3_dispatch_exit(generic, cls, method, object, retval)

Environment Probes

Event Probe
Variable definition environment_variable_define(symbol, value, rho)
Variable assignment environment_variable_assign(symbol, value, rho)
Variable removal environment_variable_remove(symbol, rho)
Variable lookup environment_variable_lookup(symbol, value, rho)
Variable existence environment_variable_exists(symbol, rho)

Building

It is recommended to build this project locally and not install it system-wide. Doing otherwise will have unknown consequences.

To download and build this locally, run the following commands -

$ git clone [email protected]:PRL-PRG/R-dyntrace.git
$ cd R-dyntrace
$ ./build

r-dyntrace's People

Contributors

aviralg avatar

Watchers

Konrad Siek avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.