Kun Niu wrote:
>
> string database = "perldbi";
Some of your results might change if you change this and the others to
this form:
string database("perldbi");
Or, for that matter, pass the string literals directly to
Connection::connect().
> int main()
> {
> Connection con(false);
> con.connect( database.c_str(), host.c_str(), username.c_str(),
> password.c_str() );
> Query query = con.query();
> query<<"select name from perltable where name='kun'";
> Result res = query.store();
> Result &rres = res;
> if(query)
> test_result( res );
> return 0;
> }
Try wrapping the entire main() block in another block, except for the
"return 0" statement. This will force the compiler to dispose of the
various objects before returning from main, which might give valgrind
better insight into what's actually going on.
> ==26905== by 0x4236515: mysqlpp::Connection::Connection(bool) (in
> /usr/lib/libmysqlpp.so.2.0.7)
I'll bet you can guess my recommendation here: upgrade to 2.2.3.
> It seems that the main problem comes from getservname_r.
If it is, disposing of the Connection instance will probably fix it. If
that doesn't fix it, it's not really under MySQL++'s control, since
that's a connection-related library call.