diff --git a/Android.mk b/Android.mk
index af1685f..87f1952 100644
--- a/Android.mk
+++ b/Android.mk
@@ -204,7 +204,7 @@
 LOCAL_MODULE_TAGS := optional
 LOCAL_SRC_FILES := \
   $(libbcc_SRC_FILES) \
-  helper/logd_write.c
+  helper/DebugHelper.c
 
 LOCAL_STATIC_LIBRARIES := \
   libcutils \
diff --git a/helper/DebugHelper.c b/helper/DebugHelper.c
new file mode 100644
index 0000000..6969c18
--- /dev/null
+++ b/helper/DebugHelper.c
@@ -0,0 +1,29 @@
+#include "DebugHelper.h"
+
+#include <stdarg.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#define LOG_BUF_SIZE 1024
+
+#if !defined(__arm__)
+int __android_log_print(int prio, const char *tag, const char *fmt, ...) {
+  va_list ap;
+  char buf[LOG_BUF_SIZE];
+
+  va_start(ap, fmt);
+  vsnprintf(buf, LOG_BUF_SIZE, fmt, ap);
+  va_end(ap);
+
+  return __android_log_write(prio, tag, buf);
+}
+
+int __android_log_write(int prio, const char *tag, const char *msg) {
+  if (!tag) {
+    tag = "";
+  }
+
+  return fprintf(stderr, "[%s] %s", tag, msg);
+}
+#endif // !defined(__arm__)
diff --git a/helper/DebugHelper.h b/helper/DebugHelper.h
new file mode 100644
index 0000000..8653a68
--- /dev/null
+++ b/helper/DebugHelper.h
@@ -0,0 +1,72 @@
+/*
+ * Copyright 2010, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef BCC_DEBUGHELPER_H
+#define BCC_DEBUGHELPER_H
+
+#include "Config.h"
+
+#if USE_LOGGER
+
+#define LOG_TAG "bcc"
+#include <cutils/log.h>
+
+#else // !USE_LOGGER
+
+#undef LOGV
+#undef LOGI
+#undef LOGD
+#undef LOGW
+#undef LOGE
+#undef LOGA
+
+#define LOGV(...)
+#define LOGI(...)
+#define LOGD(...)
+#define LOGW(...)
+#define LOGE(...)
+#define LOGA(...)
+
+#endif
+
+
+#if !USE_FUNC_LOGGER
+
+#define BCC_FUNC_LOGGER()
+
+#else // USE_FUNC_LOGGER
+
+namespace bcc {
+  class FuncLogger {
+  private:
+    char const *mFuncName;
+
+  public:
+    FuncLogger(char const *name) : mFuncName(name) {
+      LOGD("---> BEGIN: libbcc [ %s ]\n", name);
+    }
+
+    ~FuncLogger() {
+      LOGD("---> END: libbcc [ %s ]\n", mFuncName);
+    }
+  };
+} // namespace bcc
+
+#define BCC_FUNC_LOGGER() bcc::FuncLogger XX__FuncLogger(__func__)
+
+#endif
+
+#endif // BCC_DEBUGHELPER_H
diff --git a/helper/logd_write.c b/helper/logd_write.c
deleted file mode 100644
index 3d09b57..0000000
--- a/helper/logd_write.c
+++ /dev/null
@@ -1,29 +0,0 @@
-#include <cutils/log.h>
-
-#include <unistd.h>
-#include <string.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <stdarg.h>
-
-#define LOG_BUF_SIZE    1024
-
-int __android_log_print(int prio, const char *tag, const char *fmt, ...)
-{
-    va_list ap;
-    char buf[LOG_BUF_SIZE];
-
-    va_start(ap, fmt);
-    vsnprintf(buf, LOG_BUF_SIZE, fmt, ap);
-    va_end(ap);
-
-    return __android_log_write(prio, tag, buf);
-}
-
-int __android_log_write(int prio, const char *tag, const char *msg)
-{
-    if (!tag)
-        tag = "";
-
-    return fprintf(stderr, "[%s] %s", tag, msg);
-}
