 +
 +PATH="NGX_SBIN_DIR:$PATH"
 +export PATH
-+exec stap -d "NGX_SBIN_PATH" --ldd -I "NGX_TAPSET_PREFIX" "$@"
-+
++exec stap -d "NGX_SBIN_PATH" -I "NGX_TAPSET_PREFIX" "$@"
++
+diff --git a/src/event/ngx_event_probe.h b/src/event/ngx_event_probe.h
+new file mode 100644
+index 0000000..b7b2749
+--- /dev/null
++++ b/src/event/ngx_event_probe.h
+@@ -0,0 +1,32 @@
++#ifndef _NGX_EVENT_PROBE_H_INCLUDED_
++#define _NGX_EVENT_PROBE_H_INCLUDED_
++
++
++#include <ngx_config.h>
++#include <ngx_core.h>
++#include <ngx_event.h>
++
++
++#if (NGX_DTRACE)
++
++#include <ngx_dtrace_provider.h>
++
++#define ngx_event_probe_timer_add(ev, timer)                                 \
++    NGINX_TIMER_ADD(ev, timer)
++
++#define ngx_event_probe_timer_del(ev)                                        \
++    NGINX_TIMER_DEL(ev)
++
++#define ngx_event_probe_timer_expire(ev)                                     \
++    NGINX_TIMER_EXPIRE(ev)
++
++#else /* !(NGX_DTRACE) */
++
++#define ngx_event_probe_timer_add(ev, timer)
++#define ngx_event_probe_timer_del(ev)
++#define ngx_event_probe_timer_expire(ev)
++
++#endif
++
++
++#endif /* _NGX_EVENT_PROBE_H_INCLUDED_ */
+diff --git a/src/event/ngx_event_timer.c b/src/event/ngx_event_timer.c
+index 177ac1c..531cccc 100644
+--- a/src/event/ngx_event_timer.c
++++ b/src/event/ngx_event_timer.c
+@@ -144,6 +144,8 @@ ngx_event_expire_timers(void)
+             }
+ #endif
+ 
++            ngx_event_probe_timer_expire(ev);
++
+             ev->timedout = 1;
+ 
+             ev->handler(ev);
+diff --git a/src/event/ngx_event_timer.h b/src/event/ngx_event_timer.h
+index ec9b316..6095d8c 100644
+--- a/src/event/ngx_event_timer.h
++++ b/src/event/ngx_event_timer.h
+@@ -12,6 +12,7 @@
+ #include <ngx_config.h>
+ #include <ngx_core.h>
+ #include <ngx_event.h>
++#include <ngx_event_probe.h>
+ 
+ 
+ #define NGX_TIMER_INFINITE  (ngx_msec_t) -1
+@@ -35,6 +36,8 @@ extern ngx_thread_volatile ngx_rbtree_t  ngx_event_timer_rbtree;
+ static ngx_inline void
+ ngx_event_del_timer(ngx_event_t *ev)
+ {
++    ngx_event_probe_timer_del(ev);
++
+     ngx_log_debug2(NGX_LOG_DEBUG_EVENT, ev->log, 0,
+                    "event timer del: %d: %M",
+                     ngx_event_ident(ev->data), ev->timer.key);
+@@ -85,6 +88,8 @@ ngx_event_add_timer(ngx_event_t *ev, ngx_msec_t timer)
+ 
+     ev->timer.key = key;
+ 
++    ngx_event_probe_timer_add(ev, timer);
++
+     ngx_log_debug3(NGX_LOG_DEBUG_EVENT, ev->log, 0,
+                    "event timer add: %d: %M:%M",
+                     ngx_event_ident(ev->data), timer, ev->timer.key);
 diff --git a/src/http/ngx_http.c b/src/http/ngx_http.c
 index 3e077fb..b7edb7b 100644
 --- a/src/http/ngx_http.c

                 return NGX_CONF_ERROR;
             }
diff --git a/src/http/ngx_http_core_module.c b/src/http/ngx_http_core_module.c
index c5db18f..f23ba51 100644
--- a/src/http/ngx_http_core_module.c
+++ b/src/http/ngx_http_core_module.c
@@ -8,6 +8,7 @@

 
 HTTP_SRCS="src/http/ngx_http.c \
            src/http/ngx_http_core_module.c \
@@ -524,3 +531,8 @@ NGX_GOOGLE_PERFTOOLS_MODULE=ngx_google_perftools_module
 NGX_GOOGLE_PERFTOOLS_SRCS=src/misc/ngx_google_perftools_module.c
 
 NGX_CPP_TEST_SRCS=src/misc/ngx_cpp_test_module.cpp
