Ap_log_error转储在apache 2.4开始
ap_log_error dumps on apache start with apache 2.4
我在apache 2.4上构建了一个共享模块。我可以让apache构建成功。在apache启动时,在下面一行有一个转储:
if (r != NULL) ap_log_error(APLOG_MARK, APLOG_DEBUG, 0, r, "test");
我解引用server_rec(apache struct)类型的结构变量r,下面是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 = ' ', 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))
我在内存中没有看到任何损坏。但是在apache start上仍然有一个dump。如果我注释掉这一行,那么一切都像预期的那样工作。Apache启动,我也能够完成操作。但是为了启用日志记录,我们需要这个语句。是否有其他替代或修复相同的。
同样的代码可以在apache 2.4上的其他平台上工作,如linux,solaris和HP。同样,在aix和apache 2.2上也可以使用相同的代码。
我认为你没有完全编译针对2.4头,和"ap_log_error"不被视为宏它是在2.4。
另外,server_rec命名为"r"是超级误导。"r"通常是request_rec。我真不敢相信这不是你问题的根源,也许是间接的。
相关文章:
- 当回溯以零开始时,如何调试崩溃
- 根据用户输入用字母填充矢量,并将"开始"和"结束"放在四肢
- 如何从头开始创建 avi 文件?
- 为什么 -mmacosx-version-min=10.10 不阻止使用标记为从 10.11 开始的函数?
- 自一周开始以来的秒数?
- 一旦双簧管录制开始,主 UI 线程就会被阻止
- GStreamer在开始任何播放之前进行搜索
- 使 std::fstream 写入文件末尾,但从头开始读取
- 如何以毫秒为单位获取开始时间和 now() 之间的毫秒差异(以 C++为单位?
- 哪个C++规范开始支持 std::vector
- 如何继续读取不同功能中的文件,而不是从头开始再次读取文件?
- 如何在 c++ 中确定一条指令(以字节为单位)在哪里结束,另一条指令从哪里开始?
- 如何在调试中通过传递引用开始
- 如何使用 picojson.h 在 c++ 中从头开始创建 json 对象
- 从特定键开始遍历地图
- 列表的有效性在插入后开始迭代器
- 问:通过 Apache Arrow 在 C++ 中将 PARQUET 转换为 JSON?
- 尝试从头开始实现Leetcode的FizzBuzz多线程问题。收到"libc++abi.dylib: terminating"错误
- 试图修复一个错误,该错误不会让我开始编程其余部分
- Ap_log_error转储在apache 2.4开始