[Interest] Memory Leak when instantiating QWidget based windows

Andy asmaloney at gmail.com
Sat Sep 10 15:05:18 CEST 2016


(Must be something wrong with the mail system - received this 2 days
later...)

I'm not sure if there's a suppression file in there, but with Qt Creator I
only get a handful of leaks at the end of my run that don't look like they
are related to my code.  Looks like something related to ImageLoaderMachO.

I have changed my Valigrind setting in the preferences, but I haven't set
any suppression files.

Were you ever able to get it working within Creator?  It would be worth the
effort since it parses all the results and makes it easy to jump to the
code in question.



---
Andy Maloney  //  https://asmaloney.com
twitter ~ @asmaloney <https://twitter.com/asmaloney>


On Thu, Sep 8, 2016 at 5:16 PM, Mike Jackson <imikejackson at gmail.com> wrote:

> Does QtCreator come with suppression files for Qt5? I ran valgrind "by
> hand" on the command line and while I was able to actually find some of our
> leaks (yeah Valgrind..) I had to wade through 20,000 Qt leaks to find my
> leaks. Would be nice to filter those out somehow.
>
>
> --
> Michael A. Jackson
> BlueQuartz Software, LLC
> [e]: mike.jackson at bluequartz.net
>
>
> Andy wrote:
>
>> I too am using valgrind-3.11.0 (on Mac OS X 10.10.5), but I've never
>> seen that in the Application Output window.  I don't usually look there
>> when using Memcheck.
>>
>> Is there anything at all in the Memcheck panel?  Sometimes if your
>> application crashes when using valgrind there is useful info there.
>>
>> Are you running on the debug or release version of your application?
>>
>> Or could it be related this?:
>> https://bugreports.qt.io/browse/QTCREATORBUG-10163
>>
>>
>>
>> ---
>> Andy Maloney  // https://asmaloney.com
>> twitter ~ @asmaloney <https://twitter.com/asmaloney>
>>
>>
>> On Thu, Sep 8, 2016 at 9:37 AM, Edward Sutton <edward.sutton at subsite.com
>> <mailto:edward.sutton at subsite.com>> wrote:
>>
>>
>>     On Sep 8, 2016, at 8:18 AM, Andy <asmaloney at gmail.com
>>>     <mailto:asmaloney at gmail.com>> wrote:
>>>
>>>     Ah - sorry.  I can see how that's unclear (pre-coffee email).
>>>
>>>     I meant the Debug section on the left-hand side of the main
>>>     window: Welcome, Edit, Design, Debug,...
>>>
>>>     >0Then the bottom pane pops up below the editor and has a dropdown
>>>     at the top-left - Debugger, Clang Static Analyzer, Memcheck,…
>>>
>>
>>     Found it! Thank you.
>>
>>     3.1 - Selected Memcheck in the drop-down at lower-left main edit
>> window
>>     3.2 - Press green play button to the *right* of the Memcheck drop-down
>>
>>     Unfortunately it did not run for me.
>>
>>     Application Output reported:
>>
>>     Analyzing finished.
>>     ** Unknown error **
>>
>>     Using valgrind-3.11.0
>>
>>     -Ed
>>
>>
>>
>>>     ---
>>>     Andy Maloney  // https://asmaloney.com
>>>     <https://urldefense.proofpoint.com/v2/url?u=https-3A__
>>> asmaloney.com&d=DQMFaQ&c=G4BpsyPyB19LB50bn2swXw&r=cAG2c-
>>> SQES5P2qb8IW-uwnBOCX_f2qYJIlzenFnoHUc&m=6HvvOEegoKg93yk53Owc
>>> eqGbTwWp3iEoQVNaZSRUkTM&s=bdAVC6-LbUYQycT9JFc91oa7YAOneh6j9LUG3pCqRmU&e=
>>> >
>>>     twitter ~ @asmaloney
>>>     <https://urldefense.proofpoint.com/v2/url?u=https-3A__
>>> twitter.com_asmaloney&d=DQMFaQ&c=G4BpsyPyB19LB50bn2swXw&r=cA
>>> G2c-SQES5P2qb8IW-uwnBOCX_f2qYJIlzenFnoHUc&m=6HvvOEegoKg93yk5
>>> 3OwceqGbTwWp3iEoQVNaZSRUkTM&s=DErQyEPdZ-8bI_rhS90_
>>> nSKoH2XfmOa5EdwR_Dzu7pU&e=>
>>>
>>>
>>>     On Thu, Sep 8, 2016 at 9:13 AM, Edward Sutton
>>>     <edward.sutton at subsite.com <mailto:edward.sutton at subsite.com>>
>>> wrote:
>>>
>>>         Hi Andy,
>>>
>>>         Could you please elaborate on step #3?
>>>
>>>         I cannot find a Memcheck option under Preferences > Debugger.
>>>
>>>         Thanks for the tips!
>>>
>>>         -Ed
>>>         Qt Creator 4.01 with Qt 5.6.1
>>>
>>>
>>>         On Sep 8, 2016, at 7:56 AM, Andy <asmaloney at gmail.com
>>>>         <mailto:asmaloney at gmail.com>> wrote:
>>>>
>>>>         Mike:
>>>>
>>>>         If you haven't already tried it, using Qt Creator in
>>>>         combination with valgrind works really well to track these
>>>>         kinds of things down.
>>>>
>>>>         The basics:
>>>>
>>>>           1) install valgrind (I used homebrew)
>>>>           2) point Qt Creator at it in the prefs (Analyzer->Valgrind)
>>>>           3) Click the Debug tab, set the tool to Memcheck, and click
>>>>         the start button (little green arrow)
>>>>
>>>>         After it runs your application (slowly), it will spit out a
>>>>         bunch of info about memory leaks that make it pretty easy to
>>>>         track down the problems.
>>>>
>>>>
>>>>
>>>>
>>>>         ---
>>>>         Andy Maloney  // https://asmaloney.com
>>>>         <https://urldefense.proofpoint.com/v2/url?u=https-3A__
>>>> asmaloney.com&d=DQMFaQ&c=G4BpsyPyB19LB50bn2swXw&r=cAG2c-
>>>> SQES5P2qb8IW-uwnBOCX_f2qYJIlzenFnoHUc&m=c5VUb3aKymRQx0ih8A7y
>>>> ljotGOJbYdQ2iJ1PDgaS508&s=r8u8ZRFO-Qd4fneoIZohXBUjpcA_h7
>>>> vjbk3y92UEclg&e=>
>>>>         twitter ~ @asmaloney
>>>>         <https://urldefense.proofpoint.com/v2/url?u=https-3A__
>>>> twitter.com_asmaloney&d=DQMFaQ&c=G4BpsyPyB19LB50bn2swXw&r=cA
>>>> G2c-SQES5P2qb8IW-uwnBOCX_f2qYJIlzenFnoHUc&m=c5VUb3aKymRQx0ih
>>>> 8A7yljotGOJbYdQ2iJ1PDgaS508&s=o5ozT95AtJLPuZ0_E6csAPsjuGwFJw
>>>> ioJcJtEJxKwNk&e=>
>>>>
>>>>
>>>>         On Thu, Sep 8, 2016 at 6:55 AM, Konstantin Shegunov
>>>>         <kshegunov at gmail.com <mailto:kshegunov at gmail.com>> wrote:
>>>>
>>>>
>>>>             On Wed, Sep 7, 2016 at 11:23 PM, Mike Jackson
>>>>             <imikejackson at gmail.com <mailto:imikejackson at gmail.com>>
>>>>             wrote:
>>>>
>>>>                 We monitor the memory use before and after the loop
>>>>                 using OS X's Activity monitor. At the end of the loop
>>>>                 there is more memory being used than before the loop,
>>>>                 by about 2~3MB worth.
>>>>
>>>>
>>>>             This isn't reliable. Consider the following C++ only code:
>>>>
>>>>             intmain(intargc,char**argv)
>>>>
>>>>             {
>>>>
>>>>                  struct  X;
>>>>
>>>>                  X  *  x  =  nullptr;
>>>>
>>>>
>>>>                  struct  X  {
>>>>
>>>>                      int  data[1024];
>>>>
>>>>                  };
>>>>
>>>>
>>>>                  for  (qint32  i  =  0;  i  <  100000;  i++)   {
>>>>
>>>>                      x  =  new  X[1024];
>>>>
>>>>                      delete  x;
>>>>
>>>>                  }
>>>>
>>>>                  return  0;
>>>>
>>>>             }
>>>>
>>>>
>>>>             In the KSysGuard (KDE's system monitor) I observe for the
>>>> memory consumption: 12 908k, 23 048k shared before the loop and12 944k, 25
>>>> 112k shared after the loop. There isn't a leak here, yet there's a
>>>> difference. The OS's heap manager may free the memory immediately, may
>>>> cache it, or hold on to it. Ultimately it's out of your control, that's why
>>>> you should use a code analyzer (like valgrind to track leaks).
>>>>
>>>>
>>>>             Kind regards.
>>>>
>>>>
>>>>             _______________________________________________
>>>>             Interest mailing list
>>>>             Interest at qt-project.org <mailto:Interest at qt-project.org>
>>>>             http://lists.qt-project.org/mailman/listinfo/interest
>>>>             <https://urldefense.proofpoint.com/v2/url?u=http-3A__lists.
>>>> qt-2Dproject.org_mailman_listinfo_interest&d=DQMFaQ&c=G
>>>> 4BpsyPyB19LB50bn2swXw&r=cAG2c-SQES5P2qb8IW-uwnBOCX_f2qYJIlze
>>>> nFnoHUc&m=c5VUb3aKymRQx0ih8A7yljotGOJbYdQ2iJ1PDgaS508&s=LqLQ
>>>> XbnpsD6fQrnO0sB2UvftUi_snCYjEZU1tDFt7So&e=>
>>>>
>>>>
>>>>         _______________________________________________
>>>>         Interest mailing list
>>>>         Interest at qt-project.org <mailto:Interest at qt-project.org>
>>>>         https://urldefense.proofpoint.com/v2/url?u=http-3A__lists.qt
>>>> -2Dproject.org_mailman_listinfo_interest&d=DQICAg&c=G4BpsyPy
>>>> B19LB50bn2swXw&r=cAG2c-SQES5P2qb8IW-uwnBOCX_f2qYJIlze
>>>> nFnoHUc&m=c5VUb3aKymRQx0ih8A7yljotGOJbYdQ2iJ1PDgaS508&s=LqLQ
>>>> XbnpsD6fQrnO0sB2UvftUi_snCYjEZU1tDFt7So&e=
>>>>         <https://urldefense.proofpoint.com/v2/url?u=http-3A__lists.
>>>> qt-2Dproject.org_mailman_listinfo_interest&d=DQICAg&c=G
>>>> 4BpsyPyB19LB50bn2swXw&r=cAG2c-SQES5P2qb8IW-uwnBOCX_f2qYJIlze
>>>> nFnoHUc&m=c5VUb3aKymRQx0ih8A7yljotGOJbYdQ2iJ1PDgaS508&s=LqLQ
>>>> XbnpsD6fQrnO0sB2UvftUi_snCYjEZU1tDFt7So&e=>
>>>>
>>>>
>>>         This email and any files transmitted with it from The Charles
>>>         Machine Works, Inc. are confidential and intended solely for
>>>         the use of the individual or entity to which they are
>>>         addressed. If you have received this email in error please
>>>         notify the sender. Our company accepts no liability for the
>>>         contents of this email, or for the consequences of any actions
>>>         taken on the basis of the information provided, unless that
>>>         information is subsequently confirmed in writing. Please note
>>>         that any views or opinions presented in this email are solely
>>>         those of the author and do not necessarily represent those of
>>>         the company. Finally, the recipient should check this email
>>>         and any attachments for the presence of viruses. The company
>>>         accepts no liability for any damage caused by any virus
>>>         transmitted by this email.
>>>
>>>
>>>
>>     This email and any files transmitted with it from The Charles
>>     Machine Works, Inc. are confidential and intended solely for the use
>>     of the individual or entity to which they are addressed. If you have
>>     received this email in error please notify the sender. Our company
>>     accepts no liability for the contents of this email, or for the
>>     consequences of any actions taken on the basis of the information
>>     provided, unless that information is subsequently confirmed in
>>     writing. Please note that any views or opinions presented in this
>>     email are solely those of the author and do not necessarily
>>     represent those of the company. Finally, the recipient should check
>>     this email and any attachments for the presence of viruses. The
>>     company accepts no liability for any damage caused by any virus
>>     transmitted by this email.
>>
>>
>> _______________________________________________
>> Interest mailing list
>> Interest at qt-project.org
>> http://lists.qt-project.org/mailman/listinfo/interest
>>
> _______________________________________________
> Interest mailing list
> Interest at qt-project.org
> http://lists.qt-project.org/mailman/listinfo/interest
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20160910/47f19c03/attachment.html>


More information about the Interest mailing list