diff --git a/CMakeLists.txt b/CMakeLists.txt
index cd6f8b5..9a27dac 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -12,6 +12,7 @@
 
 cmake_minimum_required(VERSION 3.7.2)
 
+add_subdirectory(libsel4debug)
 add_subdirectory(libsel4allocman)
 add_subdirectory(libsel4vka)
 add_subdirectory(libsel4utils)
@@ -20,7 +21,6 @@
 add_subdirectory(libsel4serialserver)
 add_subdirectory(libsel4simple)
 add_subdirectory(libsel4simple-default)
-add_subdirectory(libsel4debug)
 add_subdirectory(libsel4test)
 add_subdirectory(libsel4sync)
 add_subdirectory(libsel4muslcsys)
diff --git a/libsel4debug/include/sel4debug/debug.h b/libsel4debug/include/sel4debug/debug.h
index a128ae5..7b2b04d 100644
--- a/libsel4debug/include/sel4debug/debug.h
+++ b/libsel4debug/include/sel4debug/debug.h
@@ -27,5 +27,25 @@
 
 void debug_cap_identify(seL4_CPtr cap);
 
+static inline int debug_cap_is_valid(seL4_CPtr cap)
+{
+    return (0 != seL4_DebugCapIdentify(cap));
+}
+
+static inline int debug_cap_is_endpoint(seL4_CPtr cap)
+{
+    // there is kernel/generated/arch/object/structures_gen.h that defines
+    // cap_endpoint_cap = 4, but we can't include it here
+    return (4 == seL4_DebugCapIdentify(cap));
+}
+
+static inline int debug_cap_is_notification(seL4_CPtr cap)
+{
+    // there is kernel/generated/arch/object/structures_gen.h that defines
+    // cap_notification_cap = 6, but we can't include it here
+    return (6 == seL4_DebugCapIdentify(cap));
+}
+
+
 void debug_print_bootinfo(seL4_BootInfo *info);
 
diff --git a/libsel4sync/CMakeLists.txt b/libsel4sync/CMakeLists.txt
index 611e0f4..44d3e77 100644
--- a/libsel4sync/CMakeLists.txt
+++ b/libsel4sync/CMakeLists.txt
@@ -20,11 +20,7 @@
 
 add_library(sel4sync STATIC EXCLUDE_FROM_ALL ${deps})
 
-target_include_directories(
-    sel4sync
-    PUBLIC
-        include
-)
+target_include_directories(sel4sync PUBLIC include)
 
 target_link_libraries(
     sel4sync
@@ -37,3 +33,7 @@
         sel4_
         autoconf
 )
+
+if(KernelDebugBuild)
+    target_link_libraries(sel4sync PUBLIC sel4debug)
+endif()
diff --git a/libsel4sync/include/sync/bin_sem.h b/libsel4sync/include/sync/bin_sem.h
index e24ff06..caaaa2f 100644
--- a/libsel4sync/include/sync/bin_sem.h
+++ b/libsel4sync/include/sync/bin_sem.h
@@ -15,6 +15,9 @@
 #include <autoconf.h>
 #include <assert.h>
 #include <sel4/sel4.h>
+#ifdef CONFIG_DEBUG_BUILD
+#include <sel4debug/debug.h>
+#endif
 #include <vka/vka.h>
 #include <vka/object.h>
 #include <stddef.h>
@@ -44,7 +47,7 @@
 
 #ifdef CONFIG_DEBUG_BUILD
     /* Check the cap actually is a notification. */
-    assert(seL4_DebugCapIdentify(notification) == 6);
+    assert(debug_cap_is_notification(notification));
 #endif
 
     sem->notification.cptr = notification;
diff --git a/libsel4sync/include/sync/condition_var.h b/libsel4sync/include/sync/condition_var.h
index 1af9de7..160fff2 100644
--- a/libsel4sync/include/sync/condition_var.h
+++ b/libsel4sync/include/sync/condition_var.h
@@ -14,6 +14,9 @@
 
 #include <autoconf.h>
 #include <sel4/sel4.h>
+#ifdef CONFIG_DEBUG_BUILD
+#include <sel4debug/debug.h>
+#endif
 #include <vka/vka.h>
 #include <vka/object.h>
 #include <platsupport/sync/atomic.h>
@@ -38,7 +41,7 @@
 
 #ifdef CONFIG_DEBUG_BUILD
     /* Check the cap actually is a notification. */
-    assert(seL4_DebugCapIdentify(notification) == 6);
+    assert(debug_cap_is_notification(notification));
 #endif
 
     cv->notification.cptr = notification;
diff --git a/libsel4sync/include/sync/sem-bare.h b/libsel4sync/include/sync/sem-bare.h
index 3218e42..203a8a3 100644
--- a/libsel4sync/include/sync/sem-bare.h
+++ b/libsel4sync/include/sync/sem-bare.h
@@ -22,6 +22,9 @@
 #include <assert.h>
 #include <limits.h>
 #include <sel4/sel4.h>
+#ifdef CONFIG_DEBUG_BUILD
+#include <sel4debug/debug.h>
+#endif
 #include <stddef.h>
 #include <platsupport/sync/atomic.h>
 
@@ -29,7 +32,7 @@
 {
 #ifdef CONFIG_DEBUG_BUILD
     /* Check the cap actually is an EP. */
-    assert(seL4_DebugCapIdentify(ep) == 4);
+    assert(debug_cap_is_endpoint(ep));
 #endif
     assert(value != NULL);
     int oldval;
@@ -80,7 +83,7 @@
 {
 #ifdef CONFIG_DEBUG_BUILD
     /* Check the cap actually is an EP. */
-    assert(seL4_DebugCapIdentify(ep) == 4);
+    assert(debug_cap_is_endpoint(ep));
 #endif
     assert(value != NULL);
     /* We can do an "unsafe" increment here because we know the lock cannot be
diff --git a/libsel4sync/include/sync/sem.h b/libsel4sync/include/sync/sem.h
index f96c3b2..1b98435 100644
--- a/libsel4sync/include/sync/sem.h
+++ b/libsel4sync/include/sync/sem.h
@@ -15,6 +15,9 @@
 #include <autoconf.h>
 #include <assert.h>
 #include <sel4/sel4.h>
+#ifdef CONFIG_DEBUG_BUILD
+#include <sel4debug/debug.h>
+#endif
 #include <vka/vka.h>
 #include <vka/object.h>
 #include <stddef.h>
@@ -38,7 +41,7 @@
     }
 #ifdef CONFIG_DEBUG_BUILD
     /* Check the cap actually is an EP. */
-    assert(seL4_DebugCapIdentify(ep) == 4);
+    assert(debug_cap_is_endpoint(ep));
 #endif
 
     sem->ep.cptr = ep;
diff --git a/libsel4sync/src/recursive_mutex.c b/libsel4sync/src/recursive_mutex.c
index f82838f..9862354 100644
--- a/libsel4sync/src/recursive_mutex.c
+++ b/libsel4sync/src/recursive_mutex.c
@@ -17,6 +17,9 @@
 #include <limits.h>
 
 #include <sel4/sel4.h>
+#ifdef CONFIG_DEBUG_BUILD
+#include <sel4debug/debug.h>
+#endif
 
 static void *thread_id(void)
 {
@@ -31,7 +34,7 @@
     }
 #ifdef CONFIG_DEBUG_BUILD
     /* Check the cap actually is a notification. */
-    assert(seL4_DebugCapIdentify(notification) == 6);
+    assert(debug_cap_is_notification(notification));
 #endif
 
     mutex->notification.cptr = notification;
diff --git a/libsel4vka/CMakeLists.txt b/libsel4vka/CMakeLists.txt
index b1e5fe8..9f472a4 100644
--- a/libsel4vka/CMakeLists.txt
+++ b/libsel4vka/CMakeLists.txt
@@ -69,3 +69,6 @@
         sel4vka_Config
         sel4_autoconf
 )
+if(KernelDebugBuild)
+    target_link_libraries(sel4vka PUBLIC sel4debug)
+endif()
diff --git a/libsel4vka/include/vka/vka.h b/libsel4vka/include/vka/vka.h
index 542c7cd..7542489 100644
--- a/libsel4vka/include/vka/vka.h
+++ b/libsel4vka/include/vka/vka.h
@@ -17,6 +17,9 @@
 
 #include <sel4/sel4.h>
 #include <sel4/types.h>
+#ifdef CONFIG_DEBUG_BUILD
+#include <sel4debug/debug.h>
+#endif
 #include <assert.h>
 #include <stdint.h>
 #include <utils/util.h>
@@ -192,7 +195,7 @@
 static inline void vka_cspace_free(vka_t *vka, seL4_CPtr slot)
 {
 #ifdef CONFIG_DEBUG_BUILD
-    if (seL4_DebugCapIdentify(slot) != 0) {
+    if (debug_cap_is_valid(slot)) {
         ZF_LOGF("slot is not free: call vka_cnode_delete first");
         /* this terminates the system */
     }
