mysql++ query.more_results()为true时,query.store_next()就崩掉了

记录暂时无法解决的崩溃问题:

正常运行时日志:

(gdb) p query
$5 = {<std::basic_ostream<char, std::char_traits<char> >> = {<No data fields>}, <mysqlpp::OptionalExceptions> = {
_vptr.OptionalExceptions = 0x9fb358, exceptions_ = true},
template_defaults = {<std::vector<mysqlpp::SQLTypeAdapter, std::allocator<mysqlpp::SQLTypeAdapter> >> = std::vector of length 0, capacity 0, parent_ = 0x7fffec65cce0, processing_ = false}, conn_ = 0x7fffed060318, copacetic_ = true,
parse_elems_ = std::vector of length 0, capacity 0, parsed_names_ = std::vector of length 0, capacity 0,
parsed_nums_ = std::map with 0 elements, sbuffer_ = <incomplete type>}
(gdb) p query.more_results()
$6 = false
(gdb) p query.store_next()
$7 = {<mysqlpp::ResultBase> = {<mysqlpp::OptionalExceptions> = {_vptr.OptionalExceptions = 0x9fb430, exceptions_ = true},
driver_ = 0x0, fields_ = std::vector of length 0, capacity 0, names_ = {counted_ = 0x0, refs_ = 0x0}, types_ = {
counted_ = 0x0, refs_ = 0x0},
current_field_ = 0}, <std::vector<mysqlpp::Row, std::allocator<mysqlpp::Row> >> = std::vector of length 0, capacity 0,
copacetic_ = false}

不正常运行日志:

(gdb) p query
$8 = {<std::basic_ostream<char, std::char_traits<char> >> = {<No data fields>}, <mysqlpp::OptionalExceptions> = {
_vptr.OptionalExceptions = 0x9fb358, exceptions_ = true},
template_defaults = {<std::vector<mysqlpp::SQLTypeAdapter, std::allocator<mysqlpp::SQLTypeAdapter> >> = std::vector of length 0, capacity 0, parent_ = 0x7fffeb080ce0, processing_ = false}, conn_ = 0x7fffeba84318, copacetic_ = true,
parse_elems_ = std::vector of length 0, capacity 0, parsed_names_ = std::vector of length 0, capacity 0,
parsed_nums_ = std::map with 0 elements, sbuffer_ = <incomplete type>}

(gdb) p query.more_results()
$9 = true
(gdb) p query.store_next()
The program being debugged entered a std::terminate call, most likely
caused by an unhandled C++ exception. GDB blocked this call in order
to prevent the program from being terminated, and has restored the
context to its original state before the call.
To change this behaviour use "set unwind-on-terminating-exception off".
Evaluation of the expression containing the function (mysqlpp::Query::store_next())
will be abandoned.

原文地址:https://www.cnblogs.com/workharder/p/12760269.html