diff --git a/libbpf_android/Loader.cpp b/libbpf_android/Loader.cpp
index b2f15cc..5f2bc70 100644
--- a/libbpf_android/Loader.cpp
+++ b/libbpf_android/Loader.cpp
@@ -30,9 +30,9 @@
 #include <sys/wait.h>
 #include <unistd.h>
 
-// This is BpfLoader v0.13
+// This is BpfLoader v0.14
 #define BPFLOADER_VERSION_MAJOR 0u
-#define BPFLOADER_VERSION_MINOR 13u
+#define BPFLOADER_VERSION_MINOR 14u
 #define BPFLOADER_VERSION ((BPFLOADER_VERSION_MAJOR << 16) | BPFLOADER_VERSION_MINOR)
 
 #include "bpf/BpfUtils.h"
@@ -713,6 +713,15 @@
             if (ret) return -errno;
         }
 
+        struct bpf_map_info map_info = {};
+        __u32 map_info_len = sizeof(map_info);
+        int rv = bpf_obj_get_info_by_fd(fd, &map_info, &map_info_len);
+        if (rv) {
+            ALOGE("bpf_obj_get_info_by_fd failed, ret: %d [%d]\n", rv, errno);
+        } else {
+            ALOGI("map %s id %d\n", mapPinLoc.c_str(), map_info.id);
+        }
+
         mapFds.push_back(std::move(fd));
     }
 
@@ -890,6 +899,15 @@
             }
         }
 
+        struct bpf_prog_info prog_info = {};
+        __u32 prog_info_len = sizeof(prog_info);
+        int rv = bpf_obj_get_info_by_fd(fd, &prog_info, &prog_info_len);
+        if (rv) {
+            ALOGE("bpf_obj_get_info_by_fd failed, ret: %d [%d]\n", rv, errno);
+        } else {
+            ALOGI("prog %s id %d\n", progPinLoc.c_str(), prog_info.id);
+        }
+
         cs[i].prog_fd.reset(fd);
     }
 
