Online C kompilátor a debugger - jak urychlit vývoj vašeho C kódu pro Arduino, RaspberryPi aj.
- March 15 2018
- Návody a rady / Tutorials
- 4133x Přečteno
Pokud máte mikrokontrolér a debugger, pak si můžete jednoduše odkrokovat jednotlivé řádky kódu a ve "watch listu" sledovat změny vámi vybraných promněných.
Pokud ale debugger nemáte, jste odkázání na UART, výpis na LCD nebo to prostě zkusíte a ono to bude nějak fungovat.
Změna kódu, kompilace, nahrání a porovnání výsledků můžete zabrat spoustu času. Pokud ho máte dost, je vám to možná jedno, ale strávit tento čas podobnou "prkotinou" je naprosto zbytečné a nelogické, když můžete využít nějaký nástroj - třeba Online C kompilátor a debugger. Nemusí se jednat nutně o "online", klidně si stáhněte Eclipse nebo jiné IDE podporující jazyk C. Pro mě je verze "online" nejjednodušší.
Online C kompilátorů je celá řada, některé lepší, některé horší, jiné tragické.
Má nejlepší osobní zkušenosti je OnlineGDB .
OnlineGDB
Kompilátor/debugger disponuje klasickým tlačítkem "Run", které po zmáčknutí spustí celý kód.
V tlačítku "Debug" se schovává krokování (ladění) kódu. Jak to použít uvidíte dále. Vedle je pak tlačítko "Stop", které zastaví debug (ladění).
Kód můžete sdílet kamarádům přes tlačítko "Share", uložit "Save" a pokud se vám váš formát kódu nelíbí, zmáčknete "Beautify" a OnlineGDB vám naformátuje kód tak, jak je to běžným zvykem. Nebo se o to alespoň pokusí.
Online kompilátor/debugger OnlineGDB je určen pro Céčko na "počítače", takže tam nemůžete ovládat jednotlivé periférie, na to jsou pak jiné programy. Tento kompilátor/debugger vám odhalí chybu jazyka C, jak jsem zmínil výše - podmínky, logické funkce, výpočty aj.
Mimojiné, OnlineGDB podporuje i další jazyky - C++, Java, Python, PHP a další.
Níže vidíte příklad použití:
Máme několik proměnných se kterými provádíme aritmetické operace.
Po spuštění kódu tlačítkem "Run" se spustí celý kód a vy uvidíte výstup kódu v části stránky nazvané "Input". Tedy - provede se vytvoření proměnných a přiřadí se jim jejich hodnota, poté se proveete několik výpočetů a nakonec se zobrazí výsledek.
Pokud by vaše část kódu nechovala tak, jak předpokládáte, můžete si buď za každým řádkem vypsat proměnné. To byste asi udělali při ladění kódu na Arduino a vypisovali přes UART.
NEBO použijete debugger.
Debug nebo česky ladění je funkce, nástroj, která vám může vypisovat proměnné, registry aj. z mikrokontroléru během jeho běhu.
Buď můžete kód krokovat, program se zastavuje za každým řádkem kódu, pomocí tlačítek "Step over", "Step into" - vstoupite do funkce, která (pokud) je na daném řádku.
Druhou možnosti je použít breakpointy, to jsou body, kdy po spuštění kódu se program zastaví až v místě, kde je umístěn breakpoint.
Jak jsem zmínil hned na začátku, nemůžete vzít celý kód například z Arduino a zkompilovat v tomto online C kompilátoru.
Využití tohoto nástroje je zejména ve vyzkoušení problematickách/náročných částí programů, kde se může kód stát nepřehledným - množství navzájem propojiných pointerů, složité podmínky, výpočty, parsování dat z polí (např. GPS/GSM modulu) aj.
Domovská stránka projektu: https://www.onlinegdb.com/
Na videu níže vidíte obě varianty použití debuggeru.