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 04:00 | Zajímavý software

    Open source reimplementace počítačových her Tomb Raider I a Tomb Raider II spolu s dalšími vylepšeními a opravami chyb TRX byla vydána ve verzi 1.0. Jedná se o sloučení projektů / enginů TR1X a TR2X do jednoho TRX. Videoukázka na YouTube.

    Ladislav Hagara | Komentářů: 0
    včera 17:00 | IT novinky

    Společnost Seznam.cz spouští konverzační nástroj založený na umělé inteligenci Seznam Asistent. Asistent využívá vlastní jazykový model SeLLMa a dočasně i komerční modely od OpenAI provozované v evropských datacentrech prostřednictvím Microsoft Azure. Dlouhodobým cílem Seznamu je provozovat Asistenta výhradně na interních jazykových modelech a ve vlastních datových centrech.

    Ladislav Hagara | Komentářů: 3
    včera 11:55 | Zajímavý software

    Software LibrePods osvobozuje bezdrátová sluchátka AirPods z ekosystému Applu. Exkluzivní funkce AirPods umožňuje využívat na Androidu a Linuxu. Díky zdokumentování proprietárního protokolu AAP (Apple Accessory Protocol).

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

    Byl vydán AlmaLinux OS 10.1 s kódovým názvem Heliotrope Lion. S podporou Btrfs. Podrobnosti v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    včera 04:33 | Komunita

    Placená služba prohledávání zprostředkovatelů dat a automatického odstraňování uniklých osobních údajů Mozilla Monitor Plus bude 17. prosince ukončena. Bezplatná monitorovací služba Mozilla Monitor bude i nadále poskytovat okamžitá upozornění a podrobné pokyny k omezení rizik úniku dat. Služba Mozilla Monitor Plus byla představena v únoru loňského roku.

    Ladislav Hagara | Komentářů: 0
    24.11. 22:44 | Nová verze

    Waydroid (Wikipedie, GitHub) byl vydán v nové verzi 1.6.0. Waydroid umožňuje spouštět aplikace pro Android na běžných linuxových distribucích. Běhové prostředí vychází z LineageOS.

    Ladislav Hagara | Komentářů: 3
    24.11. 15:44 | Nová verze

    Příspěvek na blogu Raspberry Pi představuje novou kompletně přepracovanou verzi 2.0 aplikace Raspberry Pi Imager (YouTube) pro stažení, nakonfigurování a zapsání obrazu operačního systému pro Raspberry Pi na SD kartu. Z novinek lze vypíchnout volitelnou konfiguraci Raspberry Pi Connect.

    Ladislav Hagara | Komentářů: 3
    24.11. 11:22 | Nová verze

    Memtest86+ (Wikipedie), svobodný nástroj pro kontrolu operační paměti, byl vydán ve verzi 8.00. Přináší podporu nejnovějších procesorů Intel a AMD nebo také tmavý režim.

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

    Programovací jazyk Racket (Wikipedie), tj. jazyk z rodiny jazyků Lisp a potomek jazyka Scheme, byl vydán v nové major verzi 9.0. Hlavní novinku jsou paralelní vlákna (Parallel Threads).

    Ladislav Hagara | Komentářů: 0
    24.11. 10:11 | Komunita

    Před šesti týdny bylo oznámeno, že Qualcomm kupuje Arduino. Minulý týden byly na stránkách Arduina aktualizovány podmínky používání a zásady ochrany osobních údajů. Objevily se obavy, že by otevřená povaha Arduina mohla být ohrožena. Arduino ubezpečuje, že se nic nemění a například omezení reverzního inženýrství v podmínkách používání se týká pouze SaaS cloudové aplikace.

    Ladislav Hagara | Komentářů: 0
    Jaké řešení používáte k vývoji / práci?
     (35%)
     (46%)
     (19%)
     (18%)
     (22%)
     (15%)
     (23%)
     (16%)
     (17%)
    Celkem 400 hlasů
     Komentářů: 17, poslední 19.11. 21:57
    Rozcestník
    Štítky: není přiřazen žádný štítek

    Dotaz: „corrupted size vs. prev_size“

    3.8.2018 18:16 c
    „corrupted size vs. prev_size“
    Přečteno: 3148×
    Program mi pocas behu skonci chybou:
    corrupted size vs. prev_size
    Jedna sa o jednoduchy program. Vo vykonavai programi nepouzivam ani malloc/realloc. Iba signal() a kill().

    Netusim, co moze byt zle.

    Prejavuje sa to raz zo 200 krat vykonavania programu.

    Odpovědi

    3.8.2018 20:09 rastos | skóre: 63 | blog: rastos
    Rozbalit Rozbalit vše Re: „corrupted size vs. prev_size“
    Ak dobre chápem, tak ide o hlášku z runtime knižnice, ktorá hlási poškodenie heap-u. Môžeš to pustiť pod Valgrind-om? Používaš tam nejaké polia? Pointre?
    6.8.2018 12:14 c
    Rozbalit Rozbalit vše Re: „corrupted size vs. prev_size“
    Spustil som to, ale chyba sa prejavuje 1 zo 100-1000 spusteni, takze to trocha potrva. Ake tam parametre mam pouzit?

    Maximalne malloc a free. ... pointre pouzivam .... spracovanie textovych suborov ...
    6.8.2018 14:06 rastos | skóre: 63 | blog: rastos
    Rozbalit Rozbalit vše Re: „corrupted size vs. prev_size“
    Parametre valgrindu? V prvom kole žiadne. Ja občas používam --leak-check=full. Ale tu asi nejde o leakovanie pamäte, ale asi double-free, alebo pointer, čo smeruje nikam úplne mimo.

    Odporučil by som každé "free(p);" zmeniť na "free(p);p=NULL;".
    6.8.2018 16:26 c
    Rozbalit Rozbalit vše Re: „corrupted size vs. prev_size“
    Asi som nasiel chybu po pouzitia valgrinda.

    Mam implementaciu
    char *strcat_malloc(char *s1, char *s2)
    a vysledna dlzka retazca je:
    strlen(s1)+strlen(s2)
    a ja som dal:
    strlen(s1)+strlen(s2)+1
    6.8.2018 19:27 rastos | skóre: 63 | blog: rastos
    Rozbalit Rozbalit vše Re: „corrupted size vs. prev_size“
    const char *s1="a";
    const char *s2="bc";
    
    strlen(s1)+strlen(s2); // znamená: strlen(s1)==1, strlen(s2)==2, na reťazec "abc" potrebuješ alokovať 4 bajty
    char *result=malloc(strlen(s1)+strlen(s2)+1); // je 1+2+1=4 a to je správne
    strcpy(result,s1);
    strcat(result,s2);
    
    Ale keď, už raz valgrind na niečo ukáže, tak sa tam treba dobre poobzerať.
    6.8.2018 22:01 c
    Rozbalit Rozbalit vše Re: „corrupted size vs. prev_size“
    char *strcat_malloc(const char *first, const char *second)
    {
    	long int l1;
    	long int l2;
    	long int lenght;
    	
    	char *ret;
    	
    	if(first == NULL || second == NULL)
    		return NULL;
    	
    	l1=strlen(first);
    	l2=strlen(second);
    	
    	lenght=l1+l2+1;
    	ret=(char *) malloc(lenght);
    	if(ret == NULL)
    		return NULL;
    		
    	bzero(ret,lenght);
    	
    	memcpy(ret, first, l1);
    	memcpy(ret+l1, second, l2);
    	ret[l1+l2]='\0';
    	
    	return ret;
    }
    6.8.2018 23:01 rastos | skóre: 63 | blog: rastos
    Rozbalit Rozbalit vše Re: „corrupted size vs. prev_size“
    Tam chyba nie je. Možno v pointroch, ktoré tam prídu ako parameter.
    7.8.2018 07:44 c
    Rozbalit Rozbalit vše Re: „corrupted size vs. prev_size“
    To je uz opravene.

    Chybny riadok tam bol:
    ret[l1+l2+1]='\0';
    
    ktory som opravil na
    ret[l1+l2]='\0';
    
    Ak by som vobec nemal ten riadok, tak funkcia by fungovala spravne (alokovanu pamet nulujem, aj poziciu pre \0)

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.