• úvod
  • témata
  • události
  • tržiště
  • diskuze
  • nástěnka
  • přihlásit
    registrace
    ztracené heslo?
    KOJAProgramovani 40+
    HOLAKAC
    HOLAKAC --- ---
    ABAP: hoši z SK katastru by jim mohli nabídnout pomoc.
    ABAP
    ABAP --- ---
    Tak tohle bude o dost větší prdel, než digitální stavební řízení.
    https://arstechnica.com/tech-policy/2025/03/what-could-possibly-go-wrong-doge-to-rapidly-rebuild-social-security-codebase/
    K tomu si už jen vzít colu a popcorn.
    KLEINZACH
    KLEINZACH --- ---
    (kdyby to nekoho vic zajimalo)
    Dealing with Large Symbol Files | Interrupt
    https://interrupt.memfault.com/blog/dealing-with-large-symbol-files#compress-debug-info-with-dwz
    Compressed debug sections | MaskRay
    https://maskray.me/blog/2022-01-23-compressed-debug-sections
    JANFROG
    JANFROG --- ---
    KLEINZACH: Jasne. S tim dwz bych si to asi nejdrive vyzkousel (tj. vykopirovat z dockeru, pustit dwz, nakopirovat zpet) jestli to fakt pomuze, nekdy to (pro me usecases) trosku pomuze, nekdy ne. Jinak muzes zkusit hned na zacatku session po te, co natahnes program pustit "maint expand-symtabs" - ne ze by to bylo rychlejsi, ale alespon to bude chroustat kdyz ty chces a ne kdyz se uklepnes :-)
    KLEINZACH
    KLEINZACH --- ---
    JANFROG: novejsi gdb neni problem, to sem-tam prekladam (at uz kvuli chybam nebo archaicnosti). ale co si pamatuju, tu kompresi zarizoval linker, nas linker to neumel a upgradovat neco v nasem dockeru je vzdycky voser (ted sem napr upgradoval fuse na fuse3) tak sem to hodil za hlavu.. jeste se na to podivam, mozna by to ocenili i ostatni kolegove, takze by se na to cas nasel

    nas debug build je -O0 -g, navic v gdb samotnym to info je - spis to vypada ze to ty frontendy neumej vytahnout
    JANFROG
    JANFROG --- ---
    KLEINZACH: A co mas za GDB? Pokud mas nejake fakt stare, zkus novejsi. Neni zas takova raketova veda to prelozit (s tim muzu pomoci, delam to casto :-). Pripadne mit vlastni GDB vne dockeru a uvnitr si pustit jen gdbserver
    (a v zasade jinak nez takhle nedebuguji).
    JANFROG
    JANFROG --- ---
    KLEINZACH: I v tech debug buildech se obcas neco ztrati, teda pokud nebuildujes debug buildy s `-O0`
    (to delam kdyz uz to je i na me moc :-). I kdyz prekladas s `-O2 -ggdb` tak to proste obcas GCC neda (treba kdyz nahrazuje nejake sekvence vystupem ze superoptimizeru, tam si nedokazu predstavit ze by to vubec mohlo fungovat :-)

    A bocni projekty...chapu no. Musis bocni projekt pretavit na hlavni, ale snadny to neni, chce to osvicene vedeni a takovych neni moc, no.
    KLEINZACH
    KLEINZACH --- ---
    JANFROG: ajo, na tema komprese symbolu uz jsem myslim googlil a pak jsem shorel na tom, ze bych musel upgradovat gcc (nebo linker? uz nevim) v dockeru (pouzivame celkem archaicky tooly). 2. a 3. se podivam, diky

    jj pretty print frontendu se nesnasi s lokalne nastavenym pretty printem, na to uz si davam pozor (resp. rychle se dozvim, ze sem na to zapomnel)

    (mluvim o debug buildu, u release bych si na chybici info nestezoval)


    JANFROG: jo clovece, dalsi bocni projekty muzu pribirat az deti vyrostou :) T-1x let a odpocitavam ;)
    JANFROG
    JANFROG --- ---
    KLEINZACH: Ale jo, zapasim s tim taky, byt s jinejma vecma. A sralo me to tak ze jsem se stal commiterem :-) Vyrazne to zlepsilo moji kvalitu (debugovaciho) zivota.
    JANFROG
    JANFROG --- ---
    GDB committer here :-)

    pokud mas 3GB DWARF infa, bude to pomale, DWARF neni uplne jednoduchej format. Co pomaha je 1. stlacit debuginfo, hledej dwz. 2. Pridat index, hledej gdb-add-index 3. nove GDB umi castecne paralelizovat cteni debug infa, delal to Tom Tromey, zeptej se na mailing listu.

    > manualne prochazet mapy listu se shared pointrama na stringy... kuuurva!
    Co delam ja v podobnych pripadech je to hledam kusem kodu v Pythonu.

    Ten zbytek je proste plyne z toho, ze GDB je CLI tool, ne klikaci frontend. Co se tyce frontendu, pouzivam vlastni v kombinaci s vlastnimi pretty printery. Problem neni ani tak v GDB/MI jako spis ze frontendy to casto neumi v kombinaci s temi pretty-printery
    (viz `-enable-pretty-printing` https://sourceware.org/gdb/current/onlinedocs/gdb.html/GDB_002fMI-Variable-Objects.html#GDB_002fMI-Variable-Objects).

    Co se tyce neuplnych dat apod, casto je to o tom ze data jsou tak uplna jak uplne je debug info. A GCC to obcas proste zahodi a pak se nema v GDB ceho chytit (a propagace debug infa v prekladaci je dost obtiznej problem sam o sobe. s tim mam take svou zkusenost :-)
    KLEINZACH
    KLEINZACH --- ---
    -any GDB

    prosimvas, pouzivate nejakej rozumnej front end (staci textovej) ke gdb? nebo sem jedinej kdo s tim kramem zapasi? :)

    pokazdy kdyz neco delam v gdb tak me to vlastne sere. asi nejvic:
    - pomalost (pracuju s binarkama > 3 giga). jeden blbej preklep, aby gdb hledalo v tabulce symbolu a je pomalu rychlejsi to killnout a zacit znovu nez cekat
    - pretty printing je dost casto buggy/nestabilni (jasne, neni primo gdb vina, ale manualne prochazet mapy listu se shared pointrama na stringy... kuuurva!)
    - neprehlednost.. furt musim nekde neco psat a zjistovat, misto abych videl rovnou: registry, stack, locals, thready

    co mi na textovym gdb chybi:
    - pohodlnost pri 'bloumani' kodem. dost casto nevim co vlastne hledam a tak jenom trasuju, koukam, nahlizim do datovych struktur co by mohlo bejt relevantni atp. v tomdle me gdb strasne sere, protoze i s tim pretty printem je dost otrava to hledat. ve vizualku je todle mnohem jednodussi, pac clovek proste napul spi a dela klik-klik-klik....-klikklik a vzbudi se az tehdy, kdyz je neco zajimavyho. uz nejsem mladej thread abych jel porad na 100% :)

    co jsem vyzkousel:
    - v minimu pouzivam tui a cgdb.. ale uprimne to je jak sedet na zidli bez sedaku
    - ruzny graficky frontendy typu eclipse, vscode, seer - vsechny maj tu nevyhodu ze jsou ve finale napojeny na ten gdb/mi interface, kterej je imho vetsi pulka problemu (nevim co presne je na tom spatne, rozchazej se interfacy? nebo s tim ty frontendy blbe zachazej?). prochazeni slozitejsich dat bud vubec nefunguje, nebo se na nej nesnesitelne ceka, neuplny data atp
    - par textovych frontentu (neco psanyho v pythonu? zkusim dohledat co to bylo).. problem byla opet stabilita
    - lldb - to zkousim ted, reaguje mnohem svizneji nez gdb a to jejich textovy gui je na pul cesty toho co bych chtel

    asi sem se na jako gamedev na widlich zhejckal - jak je to celkove takovej kompost mezi operacnimi systemy, tak ten jejich debugger je jak perla na.. tom kompostu :)
    DRUDRIGER2
    DRUDRIGER2 --- ---
    ono to je asi prast jak uhod.
    obcas delas framework, nebot je to do prace a si tlaceni casem
    a obcas to udelas cele sam, nebot je to pro kamarada nebo pro sebe a chces se neco noveho naucit a trosku si pohrat, pohrat si s kodem a pohrat se s vlastni hlavou..
    je to asi jako ze vsim, muze to byt raj, muze to byt peklo. s framworkem a nebo bez nej...
    JINX
    JINX --- ---
    AXTHEB: Ne, male frameworky typu FastAPI preferuju pro jednu cast aplikaci a velke typu Rails zase pro jine aplikace. Problem je ze jsem nikdy nedelal Sinatru a s Django nemam moc dobre zkusenost... jsem nechtel zbytecne generalizovat frameworky ve kterych jsem moc nedelal
    AXTHEB
    AXTHEB --- ---
    JINX: Fakt by ses podle use case rozhodoval, jestli ruby nebo python?
    JINX
    JINX --- ---
    VITEX: no ja teda nevim zda bych podle redmine posuzoval rails 🤦
    VITEX
    VITEX --- ---
    JINX: S fast-api nemam zkušenost, ježto jsem k ruby přičuchnul v rámci správy Redmine.
    FARIN
    FARIN --- ---
    VITEX: nemam zkusenost s PHP, ale pokud se bavime o Django tak na tom neni nic mega ani to nutne neznamena vrstvy navic. Zakladni django porad muze byt url mapa a jedna funkce request -> response.
    Zajimava je ta zminka o doplncich, protoze to je skutecne nejvetsi prinos takoveho frameworku.

    Mame u nas jeden projekt a ten misto standarniho frameworku kdysy vytvoril neco vlaatniho.
    A je bolestivi pak koukat, kdyz misto dorucovani business value musi implementovat napr vlastni tridu pro JsonResponse (jasne tohle je drobnost, ale stejnym zpusobe se nabaluje tuna drobnosti ktery by jsi v tom djangu dostal. Tady chces nastavit CORS headers, taky CSRF protection atp.)
    JINX
    JINX --- ---
    VITEX: Muzes to nejak rozvest? Kdybych ted sel delat webovku tak podle use-case/velikosti nebo jinym pozadavkum se budu primarne rozhodovat mezi Rails/FastAPI ty doby kdy se byznys logika prasila primo do view uz jsou doufam pryc :-)
    VITEX
    VITEX --- ---
    DRUDRIGER2: Já se zlepšuju v refactoringu. Používám lintovací nástroje a hrubou práci za mě dělá copilot. Když jsou nejasnosti prokrokuju v debuggeru. To už se pak nechá.
    Spousta lidí nenechá dopustit na megaframeworky typu symfony nebo nette (stejnou zkušenost mám ale i Rails či Django abychom se nebavili jenom o PHP) , ale já to nemám rád, Míra abstrakce a úroveň zanoření jsou neůměrně přebujelé na to, co za to dostanete. Ano je k tomu milon rozšíření a doplňku, ale opravdu bezpracně použít se je daří jenom málokdy.
    DRUDRIGER2
    DRUDRIGER2 --- ---
    VITEX: ano. Ale to musíš za at na zelene louce. Já delal asi 5 let jsem se staral o jeden project v obstaroznem phpku. Pak jsem to vzdal a presel jsem na jiní. S toho mám tu zkušenost s starým php. Jo nový je lepší. Já si pak zvolil jinej jazyk..
    Kliknutím sem můžete změnit nastavení reklam