Search
Jakýkoliv program potřebuje ke své práci zdrojové kódy, které pro jazyk C jsou s příponout .c. Jelikož programovací jazyk C je kompilovaný programovací jazyk, je třeba po každé změně zdrojového kódu program přeložit. Pro zautomatizování této činnosti je potřeba provést několik kroků, které vytvoří soubor tasks.json
tasks.json
Terminal
Configure Default Build Task…
gcc
Následně se vytvoří základní předpis, který bude vypadat přibližně takto. Pro systém Linux nebo macOS nebude přípona exe a překladač se bude nacházet v jiném adresáři.
Pro překlad poté můžete využít i klávesové zkratky Ctrl + Shift + B.
Ctrl
Shift
B
{ "version": "2.0.0", "tasks": [ { "type": "cppbuild", "label": "C/C++: gcc.exe build active file", "command": "C:\\MinGW\\bin\\gcc.exe", "args": [ "-fdiagnostics-color=always", "-g", "${file}", "-o", "${fileDirname}\\${fileBasenameNoExtension}.exe" ], "options": { "cwd": "${fileDirname}" }, "problemMatcher": [ "$gcc" ], "group": { "kind": "build", "isDefault": true }, "detail": "compiler: C:\\MinGW\\bin\\gcc.exe" } ] }
Jelikož toto je generický předpis, doporučujeme upravit v předpisu args aby bylo zaručeno to, že nemusíte být v aktivním souboru main.c, ale kdekoliv.
args
${file}
${workspaceFolder}\\main.c
${fileDirname}\\${fileBasenameNoExtension}.exe
${workspaceFolder}\\main.exe
Jakýkoliv program než se může distribuovat dál je potřeba otestovat. Možností je samozřejmě několik, ale nejjednodušší a základní je lazení programu přímo, kde jsou vidět i hodnoty proměnných.
Stejně jako u překladu je potřeba vytvořit předpis. Jeho vytvoření se skládá z několika kroků:
Run
Add Configuration…
launch.json
{}C/C++ (gdb) Launch
“${workspaceFolder}\\main.exe”
true
“C:\\MinGW\\bin\\gdb.exe”
“preLaunchTask”
“C/C++: gcc.exe build active file”
Upravený soubor launch.json poté může vypadat takto:
{ "version": "0.2.0", "configurations": [ { "name": "(gdb) Launch", "type": "cppdbg", "request": "launch", "program": "${workspaceFolder}\\main.exe", "args": [], "stopAtEntry": true, "cwd": "${fileDirname}", "environment": [], "externalConsole": true, "MIMode": "gdb", "miDebuggerPath": "C:\\MinGW\\bin\\gdb.exe", "setupCommands": [ { "description": "Enable pretty-printing for gdb", "text": "-enable-pretty-printing", "ignoreFailures": true }, { "description": "Set Disassembly Flavor to Intel", "text": "-gdb-set disassembly-flavor intel", "ignoreFailures": true } ], "preLaunchTask": "C/C++: gcc.exe build active file" } ] }
Po vytvoření předpisu pro debug programu můžeme přistoupit k samotnému lazení programu. Ideální je si otevřít zdrojový kód, v našem případě main.c, přidat si breakpoint (červené kolečko vedle čísla řádku) na první řádek ve funkci main a stisknout klávesu F5 nebo přes Run - Start Debugging. Nahoře na obrazovce se objeví menu pro debug:
main.c
main
F5
Start Debugging
F10
F11
Pokud se dojde na řádek, kde se nachází blokující funkce, např. scanf, je potřeba zadat vstup v externím okně, které při začátku debugu vyskočilo, stejně jako kdybychom program ovládali z konzole ve VS Code.
scanf
V levém okně potom je možnost nastavit sledovat proměnné nebo si některé nastavit (watch).