List:MySQL++« Previous MessageNext Message »
From:Niu Kun Date:June 10 2007 1:04am
Subject:Re: Possible memory leak of mysql++?
View as plain text  
Warren Young 写道:
> 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.
Thank you for your detailed reply.
I followed your advice.
But the result is the same.:(
I wonder if mysql++ is thread-safe.
I see less problem when my program is linked with non thread safe library.
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