[Interest] Memory Leak when instantiating QWidget based windows
Mike Jackson
imikejackson at gmail.com
Thu Sep 8 23:16:27 CEST 2016
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=6HvvOEegoKg93yk53OwceqGbTwWp3iEoQVNaZSRUkTM&s=bdAVC6-LbUYQycT9JFc91oa7YAOneh6j9LUG3pCqRmU&e=>
>> twitter ~ @asmaloney
>> <https://urldefense.proofpoint.com/v2/url?u=https-3A__twitter.com_asmaloney&d=DQMFaQ&c=G4BpsyPyB19LB50bn2swXw&r=cAG2c-SQES5P2qb8IW-uwnBOCX_f2qYJIlzenFnoHUc&m=6HvvOEegoKg93yk53OwceqGbTwWp3iEoQVNaZSRUkTM&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=c5VUb3aKymRQx0ih8A7yljotGOJbYdQ2iJ1PDgaS508&s=r8u8ZRFO-Qd4fneoIZohXBUjpcA_h7vjbk3y92UEclg&e=>
>>> twitter ~ @asmaloney
>>> <https://urldefense.proofpoint.com/v2/url?u=https-3A__twitter.com_asmaloney&d=DQMFaQ&c=G4BpsyPyB19LB50bn2swXw&r=cAG2c-SQES5P2qb8IW-uwnBOCX_f2qYJIlzenFnoHUc&m=c5VUb3aKymRQx0ih8A7yljotGOJbYdQ2iJ1PDgaS508&s=o5ozT95AtJLPuZ0_E6csAPsjuGwFJwioJcJtEJxKwNk&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=G4BpsyPyB19LB50bn2swXw&r=cAG2c-SQES5P2qb8IW-uwnBOCX_f2qYJIlzenFnoHUc&m=c5VUb3aKymRQx0ih8A7yljotGOJbYdQ2iJ1PDgaS508&s=LqLQXbnpsD6fQrnO0sB2UvftUi_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=G4BpsyPyB19LB50bn2swXw&r=cAG2c-SQES5P2qb8IW-uwnBOCX_f2qYJIlzenFnoHUc&m=c5VUb3aKymRQx0ih8A7yljotGOJbYdQ2iJ1PDgaS508&s=LqLQXbnpsD6fQrnO0sB2UvftUi_snCYjEZU1tDFt7So&e=
>>> <https://urldefense.proofpoint.com/v2/url?u=http-3A__lists.qt-2Dproject.org_mailman_listinfo_interest&d=DQICAg&c=G4BpsyPyB19LB50bn2swXw&r=cAG2c-SQES5P2qb8IW-uwnBOCX_f2qYJIlzenFnoHUc&m=c5VUb3aKymRQx0ih8A7yljotGOJbYdQ2iJ1PDgaS508&s=LqLQXbnpsD6fQrnO0sB2UvftUi_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
More information about the Interest
mailing list