diff --git a/include/bcc/bcc.h b/include/bcc/bcc.h
index 299e193..0a22f77 100644
--- a/include/bcc/bcc.h
+++ b/include/bcc/bcc.h
@@ -66,9 +66,9 @@
 
 void bccDisposeScript(BCCScriptRef script);
 
-void bccRegisterSymbolCallback(BCCScriptRef script,
-                               BCCSymbolLookupFn pFn,
-                               void *pContext);
+int bccRegisterSymbolCallback(BCCScriptRef script,
+                              BCCSymbolLookupFn pFn,
+                              void *pContext);
 
 int bccGetError(BCCScriptRef script); /* deprecated */
 
diff --git a/lib/bcc/Script.cpp b/lib/bcc/Script.cpp
index f539cc0..ac74118 100644
--- a/lib/bcc/Script.cpp
+++ b/lib/bcc/Script.cpp
@@ -457,14 +457,16 @@
 }
 
 
-void Script::registerSymbolCallback(BCCSymbolLookupFn pFn, void *pContext) {
+int Script::registerSymbolCallback(BCCSymbolLookupFn pFn, void *pContext) {
   mpExtSymbolLookupFn = pFn;
   mpExtSymbolLookupFnContext = pContext;
 
   if (mStatus != ScriptStatus::Unknown) {
     mErrorCode = BCC_INVALID_OPERATION;
     LOGE("Invalid operation: %s\n", __func__);
+    return 1;
   }
+  return 0;
 }
 
 } // namespace bcc
diff --git a/lib/bcc/Script.h b/lib/bcc/Script.h
index b996a32..a5ba058 100644
--- a/lib/bcc/Script.h
+++ b/lib/bcc/Script.h
@@ -126,7 +126,7 @@
     void getFuncInfoList(size_t size, FuncInfo *list);
 
 
-    void registerSymbolCallback(BCCSymbolLookupFn pFn, void *pContext);
+    int registerSymbolCallback(BCCSymbolLookupFn pFn, void *pContext);
 
     char *getContext();
 
diff --git a/lib/bcc/bcc.cpp b/lib/bcc/bcc.cpp
index 696b20b..294842b 100644
--- a/lib/bcc/bcc.cpp
+++ b/lib/bcc/bcc.cpp
@@ -68,9 +68,9 @@
   delete unwrap(script);
 }
 
-extern "C" void bccRegisterSymbolCallback(BCCScriptRef script,
-                                          BCCSymbolLookupFn pFn,
-                                          void *pContext) {
+extern "C" int bccRegisterSymbolCallback(BCCScriptRef script,
+                                         BCCSymbolLookupFn pFn,
+                                         void *pContext) {
   BCC_FUNC_LOGGER();
   return unwrap(script)->registerSymbolCallback(pFn, pContext);
 }
