c++服务器在free()上使用_UTF8_init()中的abort()而崩溃
C++ server crashes with abort() in _UTF8_init() on free()
我有c++代码通过dlopen()由c++ CGI服务器加载的问题。过了一段时间,程序意外崩溃,但始终在内存管理函数调用(如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运行您的程序,并查找它发出的任何错误或警告。
相关文章:
- GCC对可能有效的代码抛出init list生存期警告
- GLEW/GLUT:调用init并创建一个窗口后,取消初始化并重新初始化?
- C ++如何使用UTF8十六进制代码打印UTF8符号?
- 将 out/in out 参数与 if/switch 的 init 语句一起使用
- C++MySQL连接器没有utf8
- 使用 std::ios_base::Init 正确初始化全局变量
- 从/到 UTF-8/UTF-16 的转换需要(例如:utf8 -> 代码点,然后代码点到 utf16)或(例如:utf8 -> utf16)?
- C++和带有国家符号的文件路径(也许用 UTF8 编码)
- Pybind11: init<> with lambda
- 为什么别名声明不是有效的 init 语句(/simple-declaration)?
- 'std::wstring_convert'尽可能多地转换(从 UTF8 文件读取块)
- 结构 init:字符**类型的标量初始值设定项两边的大括号
- 将utf16宽std::wstring转换为utf8窄std::string以获得罕见字符时出现问题
- 为什么基于范围类型的大括号上循环init列表是非法的c++
- python UnicodeDecodeError: 'utf8' codec 无法解码字节
- MSVC UTF8字符串编码使用了不正确的代码点
- 使用C++将越南语字符从ISO88591、UTF8、UTF16BE、UTF16LE和UTF16编码为十六进制,反之亦然
- 是否可以使用"if constexpr"来声明具有不同类型和init-expr的变量
- 如何使 std::正则表达式匹配 Utf8
- 有没有非utf8字符这样的东西