Fórum Ubuntu CZ/SK
Ubuntu pro osobní počítače => Software => Příkazový řádek a programování pro GNU/Linux => Téma založeno: Dogmeat 19 Března 2010, 16:49:19
-
Zdravím,
měl bych dotaz ohledně logování. V současné době má aplikace (c++) využívá k logování informací a chyb pouze:
openlog();
syslog();
closelog();
Rád bych ji dále rozšířil volitelně o logování do souboru (nejlépe pod všemi dostupnými distribucemi) a chtěl bych se zeptat, jaký by jste mi doporučili způsob či knihovnu. Zatím jsem našel jen jednu zajímavou a jednoduše použitelnou knihovnu a to "log4cpp".
Dále bych rád přidal možnost vytvořit nějaký použitelný dump při pádu aplikace. Tady se mi zatím nepodařilo najít žádnou knihovnu, která by byla použitelná pod více distribucemi zároveň.
Díky za tipy
-
Možná by ti pomohl tenhle kus Boost knihovny: http://www.boost.org/doc/libs/1_42_0/libs/system/doc/index.html (http://www.boost.org/doc/libs/1_42_0/libs/system/doc/index.html)
Jestli ale hledáš něco, čím bys mohl debugovat svoje aplikace, pak by ti mohl stačit normální "strace". (http://en.wikipedia.org/wiki/Strace (http://en.wikipedia.org/wiki/Strace))
-
Log do souboru - co ti brání využít obyčejný fopen() + fprintf() z stdio.h, případně ekvivalent z iostream/fstream?
-
Co tak skusit http://logging.apache.org/log4cxx/index.html (http://logging.apache.org/log4cxx/index.html).
-
Pro logování do souboru jsem nakonec použil onen log4cpp (Standartní fprintf mi bohužel neposkytne jednoduše dostatek funkcí a možností pro logování, které potřebuji).
Na ten trace jsem se díval, ale potřeboval bych více informací než je schopen poskytnout. Ještě jej vyzkouším a uvidím, co dokáže.
Ohledně toho DUMP souboru jsem asi moc náročný (nic jako ve Visual Studiu, které mi vyplivne přímo řádek, kde došlo k problému nejspíš nenajdu obávám se). Ve své aplikaci využívám velké množství vláken a je poměrně obtížné ji ladit. Navíc jsem se u ní setkal s problémem, že na jednom systému funguje bez problému a na jiném docházelo k náhodným pádům - proto ty DUMP soubory
Ještě bych se rád zeptal, jestli zde někdo neví o nějakém odkazu, který by poskytnul dobré informace ohledně debuggování.
Zatím jsem přišel jen na -ulimit a výsledek poté protáhnout gdb, ale nic moc srozumitelného a podrobného ohledně použití a jak z něj poté dostat, kde ve zdrojovém souboru je přesně problém (předtím jsem využíval k tvorbě SW hlavně ono Visual Studio)
Díky
-
Ještě bych se rád zeptal, jestli zde někdo neví o nějakém odkazu, který by poskytnul dobré informace ohledně debuggování.
Zatím jsem přišel jen na -ulimit a výsledek poté protáhnout gdb, ale nic moc srozumitelného a podrobného ohledně použití a jak z něj poté dostat, kde ve zdrojovém souboru je přesně problém (předtím jsem využíval k tvorbě SW hlavně ono Visual Studio)
Jestli jsem pochopil dobre otazku, ptas se v cem debuggovat?
Pro kozolove gdb, ci hezci nadstavba CGDB (http://cgdb.sourceforge.net)
pro gdb je treba zkompilovat program pres -g ci -ggdb3 (dodatecne debug informace)
Pro okenkove insight (http://sourceware.org/insight/screenshots.php), ddd ci dalsi
Pouzivame tez MS VS, kompilujeme v nem jak windows verzi tak linux (je treba plugin, ktery se vzdalene pripoji na linux stroj, nakopiruje soubory, vytvori makefile, zkompiluje pripadne slinkuje binarku). Vyhoda je, ze pokud se Ti libi MS VS a delas neco i pod linux, tak nemusis mit 2 projekty -> staci jedno solution o zbyte se stara plugin
Pokud chces debugovat primo z windows, existuje BVRDE (http://bvrde.sourceforge.net/)
-
Moc díky, přesně něco takového jsem potřeboval ;)