在我的Mac上(Sierra 10.12.4)我在关闭MySQL数据库连接时遇到了C ++程序错误。
我收到的两条错误消息是
malloc: *** error for object 0x7fe1b2d81800: pointer being freed was not allocated
*** set a breakpoint in malloc_error_break to debug
和
Segmentation fault: 11
大部分时间都会发生其中一种情况,但事先无法确定何时或哪一种情况。
虽然第一个错误给出了可能发生的事情的一些指示,但我无法确定潜在的问题。 DB连接在程序开头附近设置两行
MYSQL* conn;
conn = mysql_init(NULL);
我在打电话
mysql_close(conn);
只在我的计划结束时一次。这是发生错误的地方。 连接本身工作正常。事实上,我正在关闭连接之前立即将一些日志数据写入数据库。
我也试过调试程序,但这本身就充满了问题。如果这个问题无法解决,我很乐意发布我尝试的内容。
请注意,错误仅在最近更新到10.12.4后才在我的Mac上启动。在此之前,相同的代码运行没有任何问题,并且它在Linux上编译并运行良好。