abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 12:22 | Zajímavý článek

    Nové číslo časopisu Raspberry Pi zdarma ke čtení: Raspberry Pi Official Magazine 165 (pdf).

    Ladislav Hagara | Komentářů: 0
    dnes 10:55 | Nová verze

    Byla vydána verze 9.2 open source virtualizační platformy Proxmox VE (Proxmox Virtual Environment, Wikipedie) založené na Debianu. Přehled novinek v poznámkách k vydání a informačním videu.

    Ladislav Hagara | Komentářů: 4
    dnes 09:33 | IT novinky

    Firefox 151 podporuje Web Serial API. Pro komunikaci s různými mikrokontroléry připojenými přes USB nebo sériové porty už není nutné spouštět Chrome nebo na Chromiu postavené webové prohlížeče.

    Ladislav Hagara | Komentářů: 1
    dnes 04:44 | Nová verze

    Byla vydána nová stabilní verze 8.0 webového prohlížeče Vivaldi (Wikipedie). Postavena je na Chromiu 148. Přehled novinek i s náhledy v příspěvku na blogu.

    Ladislav Hagara | Komentářů: 0
    včera 21:33 | Bezpečnostní upozornění

    Ve FreeBSD byla nalezena a opravena zranitelnost FatGid aneb CVE-2026-45250. Jedná se o lokální eskalaci práv. Neprivilegovaný uživatel se může stát rootem.

    Ladislav Hagara | Komentářů: 0
    včera 14:33 | IT novinky

    Společnost Flipper Devices oznámila Flipper One. Zcela nový Flipper postavený od nuly. Jedná se o open-source linuxovou platformu založenou na čipu Rockchip RK3576. Hledají se dobrovolníci pro pomoc s dokončením vývoje (ovladače, testování, tvorba modulů).

    Ladislav Hagara | Komentářů: 2
    včera 14:00 | Nová verze

    Vývojáři Wine oznámili vydání verze 2.0 knihovny vkd3d pro překlad volání Direct3D na Vulkan. Přehled novinek na GitLabu.

    Ladislav Hagara | Komentářů: 0
    včera 11:33 | Nová verze

    Společnost Red Hat oznámila vydání Red Hat Enterprise Linuxu (RHEL) 10.2 a 9.8. Vedle nových vlastností a oprav chyb přináší také aktualizaci ovladačů a předběžné ukázky budoucích technologií. Vypíchnout lze CLI AI asistenta goose. Podrobnosti v poznámkách k vydání (10.2 a 9.8).

    Ladislav Hagara | Komentářů: 0
    včera 05:11 | Nová verze

    Organizace Apache Software Foundation (ASF) vydala verzi 30 integrovaného vývojového prostředí a vývojové platformy napsané v Javě NetBeans (Wikipedie). Přehled novinek na GitHubu. Instalovat lze také ze Snapcraftu a Flathubu.

    Ladislav Hagara | Komentářů: 0
    včera 05:00 | Nová verze

    Byla vydána nová verze 7.0 svobodného open source redakčního systému WordPress. Kódové jméno Armstrong bylo vybráno na počest amerického jazzového trumpetisty a zpěváka Louise Armstronga (What A Wonderful World).

    Ladislav Hagara | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (13%)
     (8%)
     (2%)
     (14%)
     (31%)
     (4%)
     (6%)
     (3%)
     (16%)
     (26%)
    Celkem 1680 hlasů
     Komentářů: 30, poslední 3.4. 20:20
    Rozcestník

    Administrace komentářů

    Jste na stránce určené pro řešení chyb a problémů týkajících se diskusí a komentářů. Můžete zde našim administrátorům reportovat špatně zařazenou či duplicitní diskusi, vulgární či osočující příspěvek a podobně. Děkujeme vám za vaši pomoc, více očí více vidí, společně můžeme udržet vysokou kvalitu AbcLinuxu.cz.

    Příspěvek
    15.10.2018 20:35 xkucf03 | skóre: 50 | blog: xkucf03
    Rozbalit Rozbalit vše Re: Qt Charts (C++) a únik paměti (memory leak)
    Obecně platí, že výstupy z nástrojů jako ASan či Valgrind je třeba umět interpretovat, jinak může člověk strávit hodiny pronásledováním neexistujících problémů.

    1) Mám trochu problém s tím, že v té knihovně možná je chyba, která by se při dlouhodobějším používání projevila. U té mojí aplikace je to jedno, tam se vykreslí pár grafů a pak to uživatel zavře, takže to žádný problém nezpůsobí. Ale co kdyby to bylo něco jako webový prohlížeč nebo desktopové prostředí? To běží týdny nebo měsíce a uživatel tam pořád něco otvírá a zavírá -- tam by se ty úniky paměti nastřádaly a problém by to byl. Tohle přece musí být nějak vyřešené, ne? <javaTrolling>Nebo je je jediným řešením garbage collector? :-)</javaTrolling>

    2) Chápu, že je potřeba se to naučit číst a chápu i že ne vše je dokonalé a nějaké menší chyby nebo plané poplachy v těch knihovnách být můžou. Můj plán tedy byl, že do LSAN_OPTIONS=suppressions= přidám (zatím tam mám libdbus-1.so a libfontconfig.so) ignorování známých chyb v knihovnách, a pak mi AddressSanitizer bude hlásit už jen moje chyby. Jenže jak na to -- co tam mám přidat, když mi hlásí tohle?

    $ LSAN_OPTIONS=suppressions=stackedbarchart/asan-ignore.txt build-stackedbarchart-Desktop-Ladu011bnu00ed/stackedbarchart 
    
    =================================================================
    ==10398==ERROR: LeakSanitizer: detected memory leaks
    
    Indirect leak of 6048 byte(s) in 84 object(s) allocated from:
        #0 0x7f8718390458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
        #1 0x7f8717254441  (/usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x2bc441)
    
    Indirect leak of 5830 byte(s) in 29 object(s) allocated from:
        #0 0x7f871838eb50 in __interceptor_malloc (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xdeb50)
        #1 0x7f87170458c1 in QArrayData::allocate(unsigned long, unsigned long, unsigned long, QFlags<QArrayData::AllocationOption>) (/usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0xad8c1)
    
    Indirect leak of 2240 byte(s) in 20 object(s) allocated from:
        #0 0x7f8718390458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
        #1 0x7f8715773581 in QBrush::init(QColor const&, Qt::BrushStyle) (/usr/lib/x86_64-linux-gnu/libQt5Gui.so.5+0x2bb581)
    
    Indirect leak of 2128 byte(s) in 2 object(s) allocated from:
        #0 0x7f8718390458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
        #1 0x7f8715690ed3 in QFontDatabase::load(QFontPrivate const*, int) (/usr/lib/x86_64-linux-gnu/libQt5Gui.so.5+0x1d8ed3)
    
    Indirect leak of 1944 byte(s) in 27 object(s) allocated from:
        #0 0x7f8718390458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
        #1 0x7f87172556f2 in QObjectPrivate::connectImpl(QObject const*, int, QObject const*, void**, QtPrivate::QSlotObjectBase*, Qt::ConnectionType, int const*, QMetaObject const*) (/usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x2bd6f2)
    
    Indirect leak of 1904 byte(s) in 17 object(s) allocated from:
        #0 0x7f8718390458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
        #1 0x7f8717258e01 in QObject::QObject(QObject*) (/usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x2c0e01)
    
    Indirect leak of 576 byte(s) in 8 object(s) allocated from:
        #0 0x7f8718390458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
        #1 0x7f8715868976 in QPen::QPen(QColor const&) (/usr/lib/x86_64-linux-gnu/libQt5Gui.so.5+0x3b0976)
        #2 0x29183d753b2edeff  (<unknown module>)
    
    Indirect leak of 512 byte(s) in 8 object(s) allocated from:
        #0 0x7f871838ef40 in realloc (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xdef40)
        #1 0x7f87170962e0 in QListData::realloc_grow(int) (/usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0xfe2e0)
    
    Indirect leak of 512 byte(s) in 16 object(s) allocated from:
        #0 0x7f8718390458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
        #1 0x7f8717253961 in QObjectPrivate::addConnection(int, QObjectPrivate::Connection*) (/usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x2bb961)
    
    Indirect leak of 480 byte(s) in 30 object(s) allocated from:
        #0 0x7f8718390458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
        #1 0x7f8717ffeafe  (/usr/lib/x86_64-linux-gnu/libQt5Charts.so.5+0xceafe)
    
    Indirect leak of 272 byte(s) in 1 object(s) allocated from:
        #0 0x7f8718390458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
        #1 0x7f8717fcaa03 in QtCharts::QBarCategoryAxis::QBarCategoryAxis(QObject*) (/usr/lib/x86_64-linux-gnu/libQt5Charts.so.5+0x9aa03)
    
    Indirect leak of 264 byte(s) in 1 object(s) allocated from:
        #0 0x7f8718390458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
        #1 0x7f8717fc7f83 in QtCharts::QValueAxis::QValueAxis(QObject*) (/usr/lib/x86_64-linux-gnu/libQt5Charts.so.5+0x97f83)
    
    Indirect leak of 192 byte(s) in 2 object(s) allocated from:
        #0 0x7f8718390458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
        #1 0x7f8715667435 in QFont::detach() (/usr/lib/x86_64-linux-gnu/libQt5Gui.so.5+0x1af435)
    
    Indirect leak of 160 byte(s) in 5 object(s) allocated from:
        #0 0x7f871838eb50 in __interceptor_malloc (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xdeb50)
        #1 0x7f8717096131 in QListData::detach_grow(int*, int) (/usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0xfe131)
    
    Indirect leak of 160 byte(s) in 5 object(s) allocated from:
        #0 0x7f8718390458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
        #1 0x7f8717ffa871  (/usr/lib/x86_64-linux-gnu/libQt5Charts.so.5+0xca871)
    
    Indirect leak of 160 byte(s) in 5 object(s) allocated from:
        #0 0x7f8718390458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
        #1 0x7f8717ffa7e5  (/usr/lib/x86_64-linux-gnu/libQt5Charts.so.5+0xca7e5)
    
    Indirect leak of 160 byte(s) in 5 object(s) allocated from:
        #0 0x7f8718390458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
        #1 0x7f8717ffa74b  (/usr/lib/x86_64-linux-gnu/libQt5Charts.so.5+0xca74b)
    
    Indirect leak of 160 byte(s) in 5 object(s) allocated from:
        #0 0x7f8718390458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
        #1 0x7f8717ffa6a3  (/usr/lib/x86_64-linux-gnu/libQt5Charts.so.5+0xca6a3)
        #2 0x7f8716619b96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)
    
    Indirect leak of 152 byte(s) in 1 object(s) allocated from:
        #0 0x7f8718390458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
        #1 0x7f8718002953 in QtCharts::QStackedBarSeries::QStackedBarSeries(QObject*) (/usr/lib/x86_64-linux-gnu/libQt5Charts.so.5+0xd2953)
        #2 0x7f8716619b96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)
    
    Indirect leak of 112 byte(s) in 1 object(s) allocated from:
        #0 0x7f8718390458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
        #1 0x7f8717f91bc1  (/usr/lib/x86_64-linux-gnu/libQt5Charts.so.5+0x61bc1)
        #2 0x60300004e2df  (<unknown module>)
    
    Indirect leak of 96 byte(s) in 3 object(s) allocated from:
        #0 0x7f871838eb50 in __interceptor_malloc (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xdeb50)
        #1 0x7f87170961eb in QListData::detach(int) (/usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0xfe1eb)
    
    Indirect leak of 96 byte(s) in 1 object(s) allocated from:
        #0 0x7f8718390458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
        #1 0x7f87156652e5 in QFont::QFont(QString const&, int, int, bool) (/usr/lib/x86_64-linux-gnu/libQt5Gui.so.5+0x1ad2e5)
    
    Indirect leak of 88 byte(s) in 1 object(s) allocated from:
        #0 0x7f8718390458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
        #1 0x7f8717ffdc3d in QtCharts::QBarSet::QBarSet(QString, QObject*) (/usr/lib/x86_64-linux-gnu/libQt5Charts.so.5+0xcdc3d)
        #2 0xeae59bd6  (<unknown module>)
    
    Indirect leak of 88 byte(s) in 1 object(s) allocated from:
        #0 0x7f8718390458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
        #1 0x7f8717ffdc3d in QtCharts::QBarSet::QBarSet(QString, QObject*) (/usr/lib/x86_64-linux-gnu/libQt5Charts.so.5+0xcdc3d)
    
    Indirect leak of 88 byte(s) in 1 object(s) allocated from:
        #0 0x7f8718390458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
        #1 0x7f8717ffdc3d in QtCharts::QBarSet::QBarSet(QString, QObject*) (/usr/lib/x86_64-linux-gnu/libQt5Charts.so.5+0xcdc3d)
        #2 0x7fff1428e1cf  (<unknown module>)
    
    Indirect leak of 88 byte(s) in 1 object(s) allocated from:
        #0 0x7f8718390458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
        #1 0x7f8717ffdc3d in QtCharts::QBarSet::QBarSet(QString, QObject*) (/usr/lib/x86_64-linux-gnu/libQt5Charts.so.5+0xcdc3d)
        #2 0x7f871946d147  (<unknown module>)
    
    Indirect leak of 88 byte(s) in 1 object(s) allocated from:
        #0 0x7f8718390458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
        #1 0x7f8717ffdc3d in QtCharts::QBarSet::QBarSet(QString, QObject*) (/usr/lib/x86_64-linux-gnu/libQt5Charts.so.5+0xcdc3d)
        #2 0x7f87182db72e  (/usr/lib/x86_64-linux-gnu/libasan.so.4+0x2b72e)
    
    Indirect leak of 24 byte(s) in 1 object(s) allocated from:
        #0 0x7f8718390458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
        #1 0x55dbc98ba845 in main ../stackedbarchart/main.cpp:59
        #2 0x7f8716619b96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)
    
    Indirect leak of 24 byte(s) in 1 object(s) allocated from:
        #0 0x7f8718390458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
        #1 0x55dbc98b9ab4 in main ../stackedbarchart/main.cpp:49
        #2 0x7f8716619b96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)
    
    Indirect leak of 24 byte(s) in 1 object(s) allocated from:
        #0 0x7f8718390458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
        #1 0x7f8717f92fe6  (/usr/lib/x86_64-linux-gnu/libQt5Charts.so.5+0x62fe6)
    
    Indirect leak of 24 byte(s) in 1 object(s) allocated from:
        #0 0x7f8718390458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
        #1 0x55dbc98b9a31 in main ../stackedbarchart/main.cpp:48
        #2 0x7f8716619b96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)
    
    Indirect leak of 24 byte(s) in 1 object(s) allocated from:
        #0 0x7f8718390458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
        #1 0x55dbc98b99ae in main ../stackedbarchart/main.cpp:47
        #2 0x7f8716619b96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)
    
    Indirect leak of 24 byte(s) in 1 object(s) allocated from:
        #0 0x7f8718390458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
        #1 0x55dbc98bacf3 in main ../stackedbarchart/main.cpp:77
        #2 0x7f8716619b96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)
    
    Indirect leak of 24 byte(s) in 1 object(s) allocated from:
        #0 0x7f8718390458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
        #1 0x55dbc98b992b in main ../stackedbarchart/main.cpp:46
        #2 0x7f8716619b96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)
    
    Indirect leak of 24 byte(s) in 1 object(s) allocated from:
        #0 0x7f8718390458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
        #1 0x55dbc98b98a8 in main ../stackedbarchart/main.cpp:45
        #2 0x7f8716619b96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)
    
    -----------------------------------------------------
    Suppressions used:
      count      bytes template
         78      13390 /lib/x86_64-linux-gnu/libdbus-1.so
        127       8807 /usr/lib/x86_64-linux-gnu/libfontconfig.so
    -----------------------------------------------------
    
    SUMMARY: AddressSanitizer: 24790 byte(s) leaked in 289 allocation(s).
    

    Čeho se tam můžu chytnout, když tam jsou řádky jako tyhle?

        #0 0x7f8718390458 in operator new(unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0458)
        #1 0x55dbc98b98a8 in main ../stackedbarchart/main.cpp:45
        #2 0x7f8716619b96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)

    Jde mi o to, abych toho neignoroval moc a nezakrylo to moje vlastní chyby. Když tam přidám primitivní chybu:

    char* chyba = new char[666];
    return returnCode;

    Tak to způsobí hlášku o přímém úniku:

    Direct leak of 666 byte(s) in 1 object(s) allocated from:
        #0 0x7fd512c20618 in operator new[](unsigned long) (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xe0618)
        #1 0x558aed43af84 in main ../stackedbarchart/main.cpp:116
        #2 0x7fd510ea9b96 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21b96)
    

    To tedy chceš říct, že mám ignorovat všechny nepřímé úniky? Nehrozí (alespoň v Qt), že bych takový nepřímý únik způsobil chybou ve svém kódu?

    Mám rád, když se lidé přou, znamená to, že vědí, co dělají, a že mají směr. Frantovo.cz, SQL-DK, Relational pipes

    V tomto formuláři můžete formulovat svou stížnost ohledně příspěvku. Nejprve vyberte typ akce, kterou navrhujete provést s diskusí či příspěvkem. Potom do textového pole napište důvody, proč by měli admini provést vaši žádost, problém nemusí být patrný na první pohled. Odkaz na příspěvek bude přidán automaticky.

    Vaše jméno
    Váš email
    Typ požadavku
    Slovní popis
    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.