A target library "lib42.so" has DT_DEBUG entry in the .dynamic section.
After dlopen("lib42.so", RTLD_LOCAL | RTLD_NOW) succeded, r_debug->d_un.d_ptr is equal to zero. Why?
You should probably check the dynamic linker source code to be sure but I suspect that
DT_DEBUG is only filled for the main binary and not the additional modules.