C++ 服务器在 _UTF8_init() on free() 中因 abort() 而崩溃

标签 c++ c utf-8 xerces coredump

我在使用 C++ CGI 服务器通过 dlopen() 加载的 C++ 代码时遇到问题。一段时间后,程序意外崩溃,但始终在内存管理函数调用(如 free()、calloc() 等)并产生类似这样的核心转储:

#0  0x0000000806b252dc in kill () from /lib/libc.so.6
#1  0x0000000804a1861e in raise () from /lib/libpthread.so.2
#2  0x0000000806b2416d in abort () from /lib/libc.so.6
#3  0x0000000806abdb45 in _UTF8_init () from /lib/libc.so.6
#4  0x0000000806abdfcc in _UTF8_init () from /lib/libc.so.6
#5  0x0000000806abeb1d in _UTF8_init () from /lib/libc.so.6
... the rest of the stack

有没有人以前见过这样的东西?

什么是 _UTF8_init() 以及为什么内存管理函数会调用它?

最佳答案

这闻起来像一个损坏的堆,可能是由于代码中某处的缓冲区溢出。尝试使用 Valgrind 运行您的程序并查找它发出的任何错误或警告。

关于C++ 服务器在 _UTF8_init() on free() 中因 abort() 而崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7731488/

相关文章:

c++ - Qt 中的自定义和默认消息处理程序

c++ - 如何为 Linux 开发设置头文件和库

将平方项和立方项转换为乘法

c++ - 在 define 宏中使用 typedef 定义函数

c++ - 多进程c++(11)以链表指针作为全局变量

c - 修改 C 中的 const 指针

c - gcc 是否将长字符串初始化为 `""` 而不是短字符串?

C++检查utf8字符串是否包含指定字符

python - python中如何将UTF-8编码转换为符号字符

php - 如何将 HTML 字符引用 (ף) 转换为常规 UTF-8?