List:MySQL++« Previous MessageNext Message »
From:Warren Young Date:June 4 2007 9:20am
Subject:Re: Possible memory leak of mysql++?
View as plain text  
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.
Thread
Possible memory leak of mysql++?Kun Niu2 Jun
  • Re: Possible memory leak of mysql++?Warren Young4 Jun
    • Re: Possible memory leak of mysql++?Niu Kun10 Jun
      • Re: Possible memory leak of mysql++?Warren Young12 Jun
        • Re: Possible memory leak of mysql++?Niu Kun12 Jun