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

    Dotaz: Zmražení pythoního procesu (á la pythoní "coredump")

    limit_false avatar 6.9.2009 00:21 limit_false | skóre: 23 | blog: limit_false
    Zmražení pythoního procesu (á la pythoní "coredump")
    Přečteno: 288×

    Je nějak možné zmrazit pythoní proces a pak ho post-mortem "debugovat", podívat se na stack trace, parametry volání, lokální proměnné (vrátane nadřazených framů)? Něco podobného jako když  v C/C++ programu zavoláte abort(), ono to hodí coredump, z kterého lze zjistit nějaké informace via gdb.

    Jde o tohle: na jediném stroji občas nastane podivná race condition (jinde nenastává), kterou je velmi těžké zreplikovat. Je sice možné zjistit, že nastala, zalogovat, jenže to nestačí.

    Nápady k tomu jsem měl zatím jenom dva, ale žádný není ideální:

    1. přeložit python s ladícími symboly, při zjištení chyby zavolat os.abort(), co vyhodí coredump, ten pak prohlédnout s gdb
    2. při porušení nějaké "podmínky zmysluplnosti" se pythoní proces připojí na remote debugger, kde bude čekat až se na to člověk podívá

    První možnost je příliš low-level (zjišťování jaký pythoní kód se vlastně vykonává).

    Daný race-condition nastane cca 10-20 krát za den, při druhé možnosti buď člověk musí čekat nebo jich má mnoho.

    Víte o nejakém jednodušším řešení?

    When people want prime order group, give them prime order group.

    Odpovědi

    7.9.2009 07:42 Jan Martinek | skóre: 43 | blog: johny | Brno
    Rozbalit Rozbalit vše Re: Zmražení pythoního procesu (á la pythoní "coredump")

    V podobných situacích občas může pomoct pustit interpret pythonu s parametrem -i (interactive). Když program skončí, pustí se pythonní konzole a je možné se v tom rýpat, protože všechny objekty zůstanou beze změny.

    Ale to asi znáš.

    Pavel Stárek avatar 7.9.2009 15:23 Pavel Stárek | skóre: 43 | blog: Tady bloguju já :-) | Kolín
    Rozbalit Rozbalit vše Re: Zmražení pythoního procesu (á la pythoní "coredump")
    Tady se píše že: pdb.py can also be invoked as a script to debug other scripts. For example:
    python -m pdb myscript.py
    
    a dále se píše že:

    When invoked as a script, pdb will automatically enter post-mortem debugging if the program being debugged exits abnormally. After post-mortem debugging (or after normal exit of the program), pdb will restart the program. Automatic restarting preserves pdb's state (such as breakpoints) and in most cases is more useful than quitting the debugger upon program's exit. New in version 2.4: Restarting post-mortem behavior added.

    Takže by to možná mohlo pomoci, ale já jsem nikdy takhle neladil, to si radši přidám nějaký ten print navíc :-)
    Kdo chce, hledá způsob; kdo nechce, hledá důvod.
    limit_false avatar 7.9.2009 22:45 limit_false | skóre: 23 | blog: limit_false
    Rozbalit Rozbalit vše Re: Zmražení pythoního procesu (á la pythoní "coredump")

    Tohle jde AFAIK s kazdym trocha lepsim pythonim debuggerem. Problematicky skript je spusten automaticky cronem stovky krat denne, co dela cekani na vyskyt race condition neprijemny. Zatim jsem pridal dalsi logging hlasky aby bylo aspon videt kdy chyba nastane prvne (jestli to dela C/C++ kod nebo pythoni kod).

    Jinak zatim jsem zjistil, ze dumpnutni kompletniho stavu pythoniho procesu zadny nastroj nedokaze (vyjma coredump).

    Po kratkem pruzkumu jsem zjistil, ze by slo naprogramovat nastroj co by to umel jako nadstavbu GDB. Nejake info:

    Bohuzel je to prace tak na mesic, co nemam.

    Ale nasel jsem jeste CryoPID projekt, ktery pry umi zmrazit proces. Tak to vyzkousim a uvidim.

    Treti moznost by byla udelat si jednoducheho daemona , ktereho by procesy zavolaly, kdyby zjistili poruseni invariantu. Ten by je uspal (procesy by cekaly na odpoved). Daemon by se ovladal z command line, mohl by "odekmknout" uspany proces a hodit ho remote debuggeru, nechat pokracovat, atd.

    Ja nejvic doufam ze CryoPID bude fungovat :-) To by se hodilo i v jinych pripadech.

    When people want prime order group, give them prime order group.

    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.