Hello,
Not sure what is going on but I think I have found the
memory leak when running on windows using the purify
tool from IBM.
I see Memory leak when calling the below code.
new(UINT)
[f:\rtm\vctools\crt_bld\self_x86\crt\src\xiosbase.514]
std::ios_base::Init(void)[f:\rtm\vctools\crt_bld\self_x86\crt\src\xiobase
std::basic_ios<char,char_traits<char>::std>::init(basic_streambuf(char,char_traits<char>::std>::std
*,bool)
Ok this is why the leak occurred. I was using the
below statement.
mysqlpp::Query query = con.query();
The query is being created every time which inturn
creates an ostream which results in a leak. The query
object I now pass as a reference and then reset the
blighter which avoids the leak since only instantiated
once.
Thanks,
Garyc
--- gary clark <burslem2001@stripped> wrote:
>
> Hello,
>
5> I still believe there is a small leak. I see 8K
> increments not everytime
> the below code is called. It sounds like a race
> condition in mysqlpp.
> Has anyone attempted to 'purify' this code to
> validate
> whether the methods leak? When the 'use' statement
> is
> not used and I dont cycle through the table rows
> which
> results in an eventual exception 'end of results'
> then
> there is no leak.
>
> I'm going to try to get a version of purify next
> week
> and run this
> code through it.
>
> Thanks,
> Garyc
> --- gary clark <burslem2001@stripped> wrote:
>
> >
> > --- gary clark <burslem2001@stripped> wrote:
> >
> > >
> > > Thanks Alex for the quick response. I see end of
> > > "end
> > > of results" message being dumped out. I can that
> > it
> > > cycle through all the possible rows and collect
> > the
> > > data. But catching "end of results"? and the
> leak?
> > >
> > > Any ideas.
> > >
> > > Thanks,
> > > Garyc
> > >
> > >
> > > --- Alex Burton <alexibu@stripped> wrote:
> > >
> > > > substitute
> > > > cout << er.what() << endl;
> > > > for
> > > > > cout << "Failed Dude! " << endl;
> > > > and you might know what the exception was
> > > >
> > > > On 30/12/2006, at 9:58 AM, gary clark wrote:
> > > >
> > > > >
> > > > > Hello,
> > > > >
> > > > > Running mysqlpp 2.1.1 on Windows XP and 5.0
> > > mysql.
> > > > >
> > > > > Been trying tracking down what appears to be
> a
> > > > leak. A
> > > > > wee bit bizarre.
> > > > >
> > > > > I have a column in a mysql database called
> > > > messageData
> > > > > is a VARCHAR(4096).
> > > > >
> > > > > I have the following code extract:
> > > > >
> > > > > mysqlpp::Query query = _con.query();
> > > > > mysqlpp::ResUse res = query.use();
> > > > >
> > > > > mysqlpp::Row row;
> > > > > try {
> > > > >
> > > > > if (res)
> > > > > {
> > > > > while(row=res,fetch_row())
> > > > > {
> > > > > }
> > > > > }
> > > > > }
> > > > > catch (exception & er)
> > > > > {
> > > > > cout << "Failed Dude! " << endl;
> > > > > return 0;
> > > > > }
> > > > >
> > > > > Seems straightforward. It always ends up
> going
> > > to
> > > > > "Failed Dude".
> > > > > It then pops a leak. I commented out the
> above
> > > > code
> > > > > and it no longer leaks.
> > > > >
> > > > > Can somebody be so kind to enlighten me on
> > what
> > > I
> > > > > assume to be misuse of the above so I can
> > avoid
> > > > the
> > > > > leak.
> > > > >
> > > > > Thanks,
> > > > > Garyc
> > > > >
> > > > >
> > > > >
> > > > > --
> > > > > MySQL++ Mailing List
> > > > > For list archives:
> > > http://lists.mysql.com/plusplus
> > > > > To unsubscribe:
> > > > http://lists.mysql.com/plusplus?
> > > > > unsub=alexibu@stripped
> > > > >
> > > >
> > > >
> > >
> > >
> >
> >
>
>
> --
> MySQL++ Mailing List
> For list archives: http://lists.mysql.com/plusplus
> To unsubscribe:
>
http://lists.mysql.com/plusplus?unsub=1
>
>