我有 OpenLDAP 版本 2.4.40,它正在为不同的(专有)目标进行交叉编译。这个版本已经存在多年,并且运行良好,但现在我发现自己需要从 OpenLDAP 进行一些调试,以排除可能存在于 OpenLDAP 库本身的内存泄漏问题。
我到处寻找如何将 OpenLDAP 的调试记录到文件中,但我发现的每件事总是在谈论 SLAPD。我们根本不使用 SLAPD - 它甚至没有被编译进去。例如,运行 configure 后,在 Makefile 中指定 --disable-slapd。
因此,尽管我尝试了与获取调试信息相关的所有方法,但都无济于事,我猜这是因为我发现的方法特定于 SLAPD。
我还配置了“--enable-debug=yes”。
还要注意,我们在 Linux 目标上不使用标准 syslogd,而是使用类似的 uxlogd,这几乎是我们自己的,因为我们有 syslogd 不支持的独特要求。
显然,我不会在这里问任何与我们专有的 uxlogd 相关的问题,但我希望得到有关如何仅从 OpenLDAP 角度进行调试的帮助。由于我发现的所有内容都与 SLAPD 有关,我怀疑我在配置 OpenLDAP conf 文件时做得不正确。
我猜我需要在 /etc/openldap/ldap.conf 中配置一些内容,但我不确定是什么。
任何帮助深表感谢。
谢谢艾伦
答案1
共享库通常默认不会生成自己的调试输出 - 链接它们的程序应该处理这个问题,因为它们可能使用各种方式与用户沟通:控制台,某种 X 输出,系统日志......
您是否尝试ldap_set_option(..., LDAP_OPT_DEBUG_LEVEL, LDAP_DEBUG_TRACE)
过从链接到 OpenLDAP 库的程序进行调用?
根据ldap.conf(5)
,这些选项和所有库选项之间没有 1:1 映射,并且没有明确提到 DEBUG_LEVEL 可用。