Pomocné programy
Tady najdete seznam programů, které pomáhají s programováním v C/C++ na Linuxu.
Jedná se o programy, na které jsem někdy „náhodou“ narazil a stály mi za to, abych si je poznamenal. Vůbec to neznamená, že je musíte všechny studovat, nebo že jsou to nejpoužívanější programy, které byste měli všechny znát. Dobře proto zvažte, zda vám stojí za ten čas, který byste potřebovali k jejich studiu.
Programy jsou v tabulce seřazeny abecedně.
Program | Účel |
---|---|
addr2line |
Zadanou adresu najde ve spustitelném souboru a vypíše odpovídající řádku ze zdrojového kódu.
Hodí se jako pomůcka při práci s ladícími nástroji, jako je např. valgrind.
addr2line -e binarka 0xff…
|
ar |
Tvoří archivy (jako třeba zip). Archiv ar umí využívat
program ld pro vyhledávání funkcí
z knihoven v tomto archivu.
|
as | Překladač assembleru |
cc | Překladač jazyka C (z tohoto překladače vychází gcc = GNU cc). S cc se lze setkat na Unixech atp. |
cdecl | Zápis proměnné v jazyce C převede do lidské řeči (nebo obráceně). Online verze je na cdecl.org, ale bývá i součástí balíčků běžných linuxových distribucí. |
clang | Nový překladač jazyka C, náhrada za gcc. |
clang++ | Nový překladač jazyka C, náhrada za g++. |
cpp | Preprocesor jazyka C (první krok volaný překladačem, interpretuje makra) |
cscope |
Interaktivní prověřování zdrojových kódů v jazyce C. Stiskněte
? pro nápovědu, tabulátor pro přecházení mezi příkazy a výsledky,
CTRL+d pro ukončení cscope .
|
ctrace | Krokování běhu programu (řádek po řádku). Hodí se na debugování, ale zdá se, že už se nevyvíjí. |
colorgcc | Obarvuje výstup z překladače gcc a g++ |
gdb |
GNU debbuger. Ladění běhu programu (přeloženého s volbou -g )
|
gcc | Překladač jazyka C |
g++ | Překladač jazyka C++ |
geany | Malý, jednoduchý a rychlý grafický editor zdrojových souborů C/C++. Takové mini-vývojové prostředí. Vhodný pro ty, co nemají rádi Vim či Emacs. |
gprof |
Interpretuje výstup, který dělají programy přeložené s volbou -pg .
Zobrazí graf volání funkcí a jak dlouho které volání zabralo.
|
gzexe | Komprimuje spustitelné soubory (které zůstanou po komprimaci pořád spustitelné). Hodí se, když potřebujete ušetřit každý bajt místa na disku. |
indent [-kr] | Formátuje zdrojový kód, aby byl čitelnější. |
ld | GNU linker. |
ldconfig | Nastavuje vše potřebné pro použití sdílených knihoven. Spusťte jej po nainstalování nových sdílených knihoven, aby se staly pro programy dostupné. |
ldd | Vypíše všechny knihovny, které program využívá. |
ltrace |
Spustí program a sleduje, jaké knihovní (library) funkce program používá.
Sleduje taky signály a může sledovat systémová volání.ltrace ./program argumenty programu
|
make | Automatizuje překlad zdrojových souborů. |
mtrace |
Používá se pro odhalování úniku paměti (paměti, kterou si alokujete pomocí malloc() atp., ale už ji neuvolníte).
|
nm | Vypíše všechny funkce, které jsou součástí objektového souboru (.o, .so, spustitelného programu). Nefunguje na zkomprimované programy (pomocí gzexe). |
c++filt |
Převede "mangled" jméno funkce z c++ knihovny/programu (získané pomocí nm ) do původní
formy. Např. z _ZZN3Php12IteratorImpl9functionsEvE11initialized udělá Php::IteratorImpl::functions()::initialized.
|
pkg-config | Vypisuje volby potřebné pro překlad nebo linkování nestandardní knihovny. |
ranlib |
Dělá totéž, co ar -s . Generuje index pro archív,
aby se v něm hledali funkce rychleji.
|
readelf | Zobrazuje informace z ELF souborů. |
strings |
Vypíše řádky sestávající z nejméně 4 tisknutelných znaků, které
najde v (obj) souboru.strings -a -f program
|
splint | Kontrola zdrojových souborů v jazyku C vzhledem k nebezpečným (crackery zneužitelným) nebo nadbytečným konstrukcím a neportabilitě (nepřenositelnosti). |
strace | Funguje podobně jako ltrace, zaznamenává systémová volání spuštěného programu. |
strip | Odstraní tabulky symbolů číslování řádků ze souboru typu obj nebo programu. |
ulimit |
Nastaví, nebo vypíše různé limity prostředí (na velikosti souborů,
využití procesoru, místa na disku atp.) Zkuste: ulimit -a
|
valgrind | Používá se pro profilování a debugování programu, podobně jako ltrac,strace, mtrace, prof atp. valgrind toho umí profilovat hodně. |
Programy, které považuji za opravdu zajímavé nebo důležité, budu popisovat v následujících kapitolách.
Další balíčky k instalaci
Tady najdete seznam dalších balíčků, které byste si měli nainstalovat pro programování v C/C++. Pamatujte na to, že se v různých Linuxových distribucích mohou balíčky jmenovat trohu jinak, takže občas je to detektivní práce přijít na to, jaký balíček potřebujete.
Balíček | Co obsahuje |
---|---|
manpages-dev | Manuálové stránky, které popisují funkce jazyka C |
manpages-posix-dev nebo man-pages-posix | Manuálové stránky, které popisují funkce jazyka C ze standaru posix, jako jsou třeba funkce pro práci s vlákny (pthread) |
glibc-doc nebo glibc-info nebo glibc-doc-reference | Balíček s info stránkami ke knihovně glibcinfo glibc |