C++ Apache2.4版apache上的ap_日志_错误转储

C++ Apache2.4版apache上的ap_日志_错误转储,c++,apache,aix,apache2.4,C++,Apache,Aix,Apache2.4,我在Apache2.4上构建了一个共享模块。我可以成功地获得apache构建。在apache start上,下一行有一个转储: if (r != NULL) ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, r, "test"); 我删除结构变量r,它的类型为server_rec(apache struct),下面是dbx中的值 (dbx) p *r (process = 0x000000011001fa88, next = (nil), erro

我在Apache2.4上构建了一个共享模块。我可以成功地获得apache构建。在apache start上,下一行有一个转储:

if (r != NULL)        ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, r, "test");
我删除结构变量r,它的类型为server_rec(apache struct),下面是dbx中的值

(dbx) p *r
(process = 0x000000011001fa88, next = (nil), error_fname = "logs/error_log", error_log = 0x000000011001fa10, log = (module_levels = (nil), level = 4), module_config = 0x0000000110053420, lookup_defaults = 0x0000000110054ef8, defn_name = (nil), defn_line_number = 0, is_virtual = '\0', port = 0, server_scheme = (nil), server_admin = "you@example.com", server_hostname = "isi081.wdf.sap.corp", addrs = 0x000000011004e410, timeout = 60000000, keep_alive_timeout = 5000000, keep_alive_max = 100, keep_alive = 1, names = (nil), wild_names = (nil), path = (nil), pathlen = 0, limit_req_line = 8190, limit_req_fieldsize = 8190, limit_req_fields = 100, context = (nil))
我看不到内存中有任何损坏。但apachestart上仍然有一个转储。 如果我把这行注释掉,那么一切都会按预期进行。Apache启动,我也能够完成操作。但是我们需要这个语句才能启用日志记录。是否有其他替代方案或修复方法

同样的代码也适用于其他平台,如Apache2.4上的linux、solaris和HP。 同样,在使用Apache2.2的aix上,同样的代码也可以工作。只有在Apache2.4上才观察到这个问题


任何帮助都将不胜感激。

我认为您没有完全针对2.4标题进行编译,并且“ap\u log\u error”没有被视为2.4中的宏


此外,名为“r”的服务器记录具有极大的误导性。“r”传统上是一个请求记录。我不敢相信它实际上不是问题的根源,也许它是间接的。

下面是转储文件,r是服务器记录类型:我想你应该用调试器检查核心文件。您可能希望使用'-g'选项重新编译Apache。