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 02:16 | Bezpečnostní upozornění

    Zranitelnost CVE-2026-98432 s CVSS 9.8 odhalila AI od společnosti Anthropic. Jedná se o kritickou chybu v implementaci MPTCP (multipath TCP). Debian vydal patche 16.10. a 22.10., ale např. Ubuntu je zatím bez opravy. Více informací na The Hacker News.

    Max | Komentářů: 4
    včera 23:22 | Zajímavý software

    Na Slovensku vznikla úplne nová rally hra, ktorá je zadarmo a funguje vo Windowse, Linuxe či na Macu. Greenie Rally má viac ako 50 tratí a vozidiel, šampionáty či turnaje. Má retro feeling a imituje automobilové hry z prelomu tisícročí. Vyskúšate prejsť všetky mapy na Škode 130RS?

    Stanislav Hoferek | Komentářů: 0
    včera 14:33 | Komunita

    Do základního systému NetBSD -current byl přidán nový editor atto jako alternativa k editorům vi a xedit.

    Ladislav Hagara | Komentářů: 1
    včera 14:11 | IT novinky

    Společnost System76 představila kompaktní 11litrový Thelio Prime Desktop. S procesorem AMD Ryzen 9000. S Pop!_OS 24.04 LTS s desktopovým prostředím COSMIC nebo Ubuntu 24.04 LTS.

    Ladislav Hagara | Komentářů: 0
    včera 13:44 | Humor

    Čínská státní televize pozastavila vysílání španělské La Ligy a čínské internetové platformy omezily obsah s Kylianem Mbappém poté, co slavný fotbalista ve francouzském pořadu The Bridge mluvil o svém oblíbeném memu, v němž je jeho tvář vložena do portrétu zobrazujícího diktátora Mao Ce-tunga. 'Můj oblíbený mem je ten, na kterém dali můj obličej na čínského diktátora. To mě opravdu rozesmívá. S přáteli ho používám pořád' řekl,

    … více »
    Pendrekama do nich❗ | Komentářů: 5
    včera 13:22 | IT novinky

    Při příležitosti oslav Dne vzniku samostatného československého státu (28. října) byly uděleny medaile Za zásluhy tvůrci aplikace Záchranka Filipu Maleňákovi, vědci v oblasti umělé inteligence Tomáši Mikolovovi a Olze Štěpánkové, vědkyni zabývající se kybernetikou, robotikou a strojovým učením, průkopnici v oblastech výuky a využití umělé inteligence v medicínském inženýrství.

    Pendrekama do nich❗ | Komentářů: 4
    včera 01:33 | IT novinky

    Apple představil nový iPad mini, iMac s čipem M6, 14palcový MacBook Pro s čipem M6 a MacBook Pro s PROLED XDR displejem – první Mac s dotykovým ovládáním.

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

    Nedávno představený projekt mapSTL.com řeší budoucnost. 𝕏: "Netušil jsem, kolik patentů na generování map existuje. Existují patenty na generování fantasy map 🫣. Cokoliv je na 3D tiskárnu a tvoří to produkt, bude to mít patenty. Tak bacha na to!" … více »

    Ladislav Hagara | Komentářů: 4
    28.10. 18:55 | Nová verze

    Multiplatformní emulátor terminálu Ghostty byl vydán ve verzi 1.4 (𝕏). Přehled novinek a vylepšení v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 0
    28.10. 18:22 | Bezpečnostní upozornění

    Byla objevena zranitelnost Tailworm v Tailscale a Headscale umožňující lokální eskalaci práv přihlášeného uživatele. Následně byla v Tailscale v opravené verzi 1.104.4+ změněna architektura aplikace. Viz příspěvek na blogu Tailscale.

    vencour | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (9%)
     (7%)
     (4%)
     (20%)
     (30%)
     (9%)
     (5%)
     (2%)
     (14%)
     (20%)
    Celkem 2942 hlasů
     Komentářů: 34, poslední 26.10. 08:24
    Rozcestník

    Dotaz: gdb problem pri trasovani

    6.3.2008 00:43 depka
    gdb problem pri trasovani
    Přečteno: 455×
    zdravim, snazim se debugovat tento kus kodu:
        
         38 void FileDictionary::activate()
         39 {
         40         index.clear();
         41         std::ifstream f(INDEX_FILENAME);
         42         if (f.is_open())
         43         {               
         44                 ***string line;
         45                 std::string temp;
         46         gulong pos;
         47         while(std::getline(f, temp, '\t') >> pos)
         48         {
         49             line = temp;
         50             index.insert(std::pair<****ustring, gulong>(line,pos));     
         51                         f.ignore();
         52         }
         53         }
         54         else
         55                 exit(1);
         56         
         57         fdictionary.close();
         58         fdictionary.open(DICTIONARY_FILENAME);
         59         if (!fdictionary.is_open())
         60                 exit(1);
         61 }
    
    
    

    nastavim breakpoint na zacatku funkce, a pokracuju prikazem next, jenze gdb me skoci do hlubin STL(index.clear()) a dalsim nextovanim nakonec vyskoci az na 60 radku(kod pred 60 radkem ani netrasuje)
    jeste prikladam vypis gdb:
    $ gdb program
    GNU gdb 6.6-debian
    Copyright (C) 2006 Free Software Foundation, Inc.
    GDB is free software, covered by the GNU General Public License, and you are
    welcome to change it and/or distribute copies of it under certain conditions.
    Type "show copying" to see the conditions.
    There is absolutely no warranty for GDB.  Type "show warranty" for details.
    This GDB was configured as "i486-linux-gnu"...
    Using host libthread_db library "/lib/tls/i686/cmov/libthread_db.so.1".
    (gdb) break file-dictionary.cpp:40
    Breakpoint 1 at 0x804fdc2: file file-dictionary.cpp, line 40.
    (gdb) run
    Starting program: program 
    [Thread debugging using libthread_db enabled]
    [New Thread -1232501056 (LWP 19194)]
    [Switching to Thread -1232501056 (LWP 19194)]
    
    Breakpoint 1, FileDictionary::activate (this=0x80c2200) at file-dictionary.cpp:41
    41              std::ifstream f(INDEX_FILENAME);
    (gdb) next
    696             _M_impl._M_node_count = 0;
    (gdb) next
    693             _M_leftmost() = _M_end();
    (gdb) next
    695             _M_rightmost() = _M_end();
    (gdb) next
    446           _M_streambuf(0), _M_ctype(0), _M_num_put(0), _M_num_get(0)
    (gdb) next
    574           basic_istream(): _M_gcount(streamsize(0)) { }
    (gdb) next
    446           _M_streambuf(0), _M_ctype(0), _M_num_put(0), _M_num_get(0)
    (gdb) next
    574           basic_istream(): _M_gcount(streamsize(0)) { }
    (gdb) next
    446           _M_streambuf(0), _M_ctype(0), _M_num_put(0), _M_num_get(0)
    (gdb) next
    574           basic_istream(): _M_gcount(streamsize(0)) { }
    (gdb) next
    446           _M_streambuf(0), _M_ctype(0), _M_num_put(0), _M_num_get(0)
    (gdb) next
    574           basic_istream(): _M_gcount(streamsize(0)) { }
    (gdb) next
    443           : __istream_type(), _M_filebuf()
    (gdb) next
    445             this->init(&_M_filebuf);
    (gdb) next
    497             if (!_M_filebuf.open(__s, __mode | ios_base::in))
    (gdb) next
    498               this->setstate(ios_base::failbit);
    (gdb) next
    144           { this->clear(this->rdstate() | __state); }
    (gdb) next
    248           { return _M_file.is_open(); }
    (gdb) next
    42              if (f.is_open())
    (gdb) next
    60                      exit(1);
    (gdb) 
    
    
    

    Odpovědi

    6.3.2008 01:17 Messa | skóre: 39 | blog: Messa
    Rozbalit Rozbalit vše Re: gdb problem pri trasovani
    Možná se jedná o exit na řádku 55 a ne 60. (Nějak se mi nechce věřit že by to gdb nerozeznal, ale já se v tom moc neorientuji a proto nevím, jestli je číslo řádku uloženo v binárce nebo ho gdb nějak odhaduje.) Taky je divný, že ten breakpoint se nastavil prakticky až na řádek 41, ale to je už jiný problém :-)

    Navrhované řešení - rozliš ty dva exity od sebe nějak. A vůbec, jak to že exituješ a přitom ani neřekneš uživateli, proč? :-)
    6.3.2008 08:30 rastos | skóre: 63 | blog: rastos
    Rozbalit Rozbalit vše Re: gdb problem pri trasovani
    Kompiluješ s optimalizáciou (napr. -O2)? Ak áno, skús ju vypnúť.
    6.3.2008 08:43 dementni.lojzik | skóre: 19 | blog: ze zivota na vsi
    Rozbalit Rozbalit vše Re: gdb problem pri trasovani
    jj, presne tak, takto se to obvykle chova, kdyz je zapnuta otimalizace
    6.3.2008 09:35 depka
    Rozbalit Rozbalit vše Re: gdb problem pri trasovani
    a muzete me poradit jak se to dela pri pouzivani autoconfu a automake? uz sem to zkousel nastavenim promenne prostredi CFLAGS="-g -O0" ale pri komopilace jsem stejne videl v seznamu parametru gcc -O2
    6.3.2008 09:42 Ivan
    Rozbalit Rozbalit vše Re: gdb problem pri trasovani
    ./configure CXXFLAGS='-O0 -fno-inline -ggdb3' LDFLAGS='-Bsymbolic'

    CFLAGS jsou pro Ccko CXXFLAGS jsou pro C++ a CPPFLAGS jsou pro preprocessor
    6.3.2008 09:43 qk_
    Rozbalit Rozbalit vše Re: gdb problem pri trasovani
    Dulezity je posledni parametr tedy kdyz bude -O2 a za nim -O0 tak se jede pres -O0. Pri autotools je nejlepsi si udelat volbu neco jako --enable-debug, ktery zapne debugovani (typicky -DDEBUG a -O0 -g). A pro c++ zdrojaky zkus misto CFLAGS pouzit CPPFLAGS, zalezi jak je to udelany vevnitr toho scriptu.
    6.3.2008 09:45 qk_
    Rozbalit Rozbalit vše Re: gdb problem pri trasovani
    jj, nademnou je spravne CXX misto CPP (furt se mi to plete)
    6.3.2008 10:39 depka
    Rozbalit Rozbalit vše Re: gdb problem pri trasovani
    takze vypnout tu optimalizaci pomohlo, vsem dekuji.

    Založit nové vlákno • Nahoru

    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.