抛出“std::length_error”实例后调用 C++ 终止,what(): basic_string::_M_create

Posted

技术标签:

【中文标题】抛出“std::length_error”实例后调用 C++ 终止,what(): basic_string::_M_create【英文标题】:C++ terminate called after throwing an instance of 'std::length_error', what(): basic_string::_M_create 【发布时间】:2016-06-28 07:42:03 【问题描述】:

在 Ubuntu 16.04 下运行时出现以下错误。

抛出 'std::length_error' 的实例后调用 C++ 终止,what(): basic_string::_M_create

当我在 Ubuntu 15.04 下运行时,代码运行良好。

gdb 跟踪我已将其隔离为以下代码: http://imgur.com/ibvFx4B

连接周围的某个地方会产生错误。

#define DBHOST "tcp://127.0.0.1:3306"
#define USER "root"
#define PASSWORD " "
#define DATABASE "db_mmofps"

void CDBmysql::Connect()

     m_driver = mysql::get_mysql_driver_instance();
     m_con = m_driver->connect(DBHOST, USER, PASSWORD);
     m_con->setSchema(DATABASE);
 

任何想法为什么它会抛出错误?这很简单,我确信我忽略了。

【问题讨论】:

您是否尝试设置除空格以外的密码? 密码应该为空,我将 mysql 设置为 root,密码为空。当我在没有空格的情况下将其设为“”时,这是同样的错误。谢谢。 我建议将其转换为 1234,例如,以确保错误不是来自格式错误的密码 尝试使用通用密码重新安装,但仍然出现 length_error 错误。 【参考方案1】:

解决了这个问题。 libmysqlcppconn 库需要从 Ubuntu 15.04 中的工作库中替换。希望这可以省去一些人的头疼。

【讨论】:

以上是关于抛出“std::length_error”实例后调用 C++ 终止,what(): basic_string::_M_create的主要内容,如果未能解决你的问题,请参考以下文章

关于在抛出 'std::length_error' 实例后调用终止

抛出“std::length_error”实例后调用终止

在抛出 'std::length_error' what(): basic_string::_S_create 的实例后调用终止

抛出“std::length_error”实例后调用 C++ 终止,what(): basic_string::_M_create

c++ 中的错误:“在抛出 'std::length_error'what() 的实例后调用终止:basic_string::_M_replace_aux”

理解错误“在抛出 'std::length_error'what() 实例后调用终止:basic_string::_S_create Aborted (core dumped)”