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:33 | Zajímavý projekt

    Kevin Lin zkouší využívat chytré brýle Mentra při hraní na piano. Vytváří aplikaci AugmentedChords, pomocí které si do brýlí posílá notový zápis (YouTube). Uvnitř brýlí běží AugmentOS (GitHub), tj. open source operační systém pro chytré brýle.

    Ladislav Hagara | Komentářů: 1
    dnes 12:11 | Pozvánky

    Jarní konference EurOpen.cz 2025 proběhne 26. až 28. května v Brandýse nad Labem. Věnována je programovacím jazykům, vývoji softwaru a programovacím technikám.

    Ladislav Hagara | Komentářů: 0
    včera 21:44 | Komunita

    Na čem aktuálně pracují vývojáři GNOME a KDE Plasma? Pravidelný přehled novinek v Týden v GNOME a Týden v KDE Plasma.

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

    Před 25 lety zaplavil celý svět virus ILOVEYOU. Virus se šířil e-mailem, jenž nesl přílohu s názvem I Love You. Příjemci, zvědavému, kdo se do něj zamiloval, pak program spuštěný otevřením přílohy načetl z adresáře e-mailové adresy a na ně pak „milostný vzkaz“ poslal dál. Škody vznikaly jak zahlcením e-mailových serverů, tak i druhou činností viru, kterou bylo přemazání souborů uložených v napadeném počítači.

    Ladislav Hagara | Komentářů: 28
    3.5. 22:33 | Nová verze

    Byla vydána nová major verze 5.0.0 svobodného multiplatformního nástroje BleachBit (GitHub, Wikipedie) určeného především k efektivnímu čištění disku od nepotřebných souborů.

    Ladislav Hagara | Komentářů: 2
    2.5. 22:22 | Komunita

    Na čem pracují vývojáři webového prohlížeče Ladybird (GitHub)? Byl publikován přehled vývoje za duben (YouTube).

    Ladislav Hagara | Komentářů: 0
    2.5. 19:11 | IT novinky

    Provozovatel čínské sociální sítě TikTok dostal v Evropské unii pokutu 530 milionů eur (13,2 miliardy Kč) za nedostatky při ochraně osobních údajů. Ve svém oznámení to dnes uvedla irská Komise pro ochranu údajů (DPC), která jedná jménem EU. Zároveň TikToku nařídila, že pokud správu dat neuvede do šesti měsíců do souladu s požadavky, musí přestat posílat data o unijních uživatelích do Číny. TikTok uvedl, že se proti rozhodnutí odvolá.

    Ladislav Hagara | Komentářů: 5
    2.5. 11:22 | Zajímavý projekt

    Společnost JetBrains uvolnila Mellum, tj. svůj velký jazykový model (LLM) pro vývojáře, jako open source. Mellum podporuje programovací jazyky Java, Kotlin, Python, Go, PHP, C, C++, C#, JavaScript, TypeScript, CSS, HTML, Rust a Ruby.

    Ladislav Hagara | Komentářů: 2
    2.5. 09:11 | Bezpečnostní upozornění

    Vývojáři Kali Linuxu upozorňují na nový klíč pro podepisování balíčků. K původnímu klíči ztratili přístup.

    Ladislav Hagara | Komentářů: 2
    1.5. 20:00 | Komunita

    V březnu loňského roku přestal být Redis svobodný. Společnost Redis Labs jej přelicencovala z licence BSD na nesvobodné licence Redis Source Available License (RSALv2) a Server Side Public License (SSPLv1). Hned o pár dní později vznikly svobodné forky Redisu s názvy Valkey a Redict. Dnes bylo oznámeno, že Redis je opět svobodný. S nejnovější verzí 8 je k dispozici také pod licencí AGPLv3.

    Ladislav Hagara | Komentářů: 3
    Jaký filesystém primárně používáte?
     (58%)
     (1%)
     (8%)
     (21%)
     (4%)
     (2%)
     (2%)
     (0%)
     (1%)
     (3%)
    Celkem 525 hlasů
     Komentářů: 22, poslední dnes 10:06
    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: 49 | 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.