This shows you the differences between two versions of the page.
|
poo-is-ab:resurse:02 [2025/10/01 13:24] adrian.ciobanu1906 |
poo-is-ab:resurse:02 [2025/10/20 22:04] (current) razvan.cristea0106 [Depanare în modulul debug din Visual Studio Code] |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ===== Startup guide - WSL, VSC si GitHub ===== | + | ===== Startup guide - VSC, WSL și GitHub ===== |
| **Autor: Dănuț Ciobanu** | **Autor: Dănuț Ciobanu** | ||
| Line 5: | Line 5: | ||
| ===== Introducere ===== | ===== Introducere ===== | ||
| - | Pentru acest curs, folosirea WSL (Windows Subsystem for Linux) și Visual Studio Code (VS Code) vă va ajuta enorm. Gândiți-vă la această combinație ca la un banc de lucru universal, care vă asigură că toți veți lucra într-un mediu identic, standardizat, la fel ca profesioniștii. Cu WSL, chiar dacă aveți Windows, veți putea rula un mediu Linux autentic, eliminând astfel problemele de compatibilitate și diferențele de configurare dintre voi. Veți avea acces direct la aceleași unelte și compilatoare (cum ar fi G++ pentru C++) pe care le veți întâlni și în industrie. În același timp, VS Code vă oferă o interfață modernă, prietenoasă și gratuită, unde puteți scrie și depana codul mult mai ușor. | + | Pentru acest laborator, folosirea WSL (Windows Subsystem for Linux) și Visual Studio Code (VS Code) vă va ajuta enorm. Gândiți-vă la această combinație ca la un banc de lucru universal, care vă asigură că toți veți lucra într-un mediu identic, standardizat, la fel ca profesioniștii. Cu WSL, chiar dacă aveți Windows, veți putea rula un mediu Linux autentic, eliminând astfel problemele de compatibilitate și diferențele de configurare dintre voi. Veți avea acces direct la aceleași unelte și compilatoare (cum ar fi G++ pentru C++) pe care le veți întâlni și în industrie. În același timp, VS Code vă oferă o interfață modernă, prietenoasă și gratuită, unde puteți scrie și depana codul mult mai ușor. |
| ==== Pasul 1 - Instalarea WSL ==== | ==== Pasul 1 - Instalarea WSL ==== | ||
| Line 90: | Line 90: | ||
| Acum aceste setări vor fi salvate global pentru acest utilizator pentru comenzile următoare de Git. | Acum aceste setări vor fi salvate global pentru acest utilizator pentru comenzile următoare de Git. | ||
| - | ==== Pasul 5 - Primul repository și încarcare pe GitHub ==== | + | ==== Pasul 5 - Primul repository și cod ==== |
| Intrați pe [[https://github.com/|GitHub]] și apăsați pe butonul de "+" din dreapta-sus: | Intrați pe [[https://github.com/|GitHub]] și apăsați pe butonul de "+" din dreapta-sus: | ||
| Line 96: | Line 96: | ||
| {{ :poo-is-ab:resurse:github_new_repo.png?direct&600 |}} | {{ :poo-is-ab:resurse:github_new_repo.png?direct&600 |}} | ||
| - | Apoi dați-i un nume și recomandat este să îl faceți privat atâta timp cât nu vreți ca oricine extern să vă poate vedea repository-ul respectiv și salvați-l: | + | Apoi dați-i un nume și recomandat este să îl faceți privat atâta timp cât nu vreți ca oricine extern să vă poată vedea repository-ul respectiv și salvați-l: |
| {{ :poo-is-ab:resurse:repos_settings.png?direct&600 |}} | {{ :poo-is-ab:resurse:repos_settings.png?direct&600 |}} | ||
| Line 126: | Line 126: | ||
| **ATENȚIE: deci nu mai este nevoie sa rulăm ''%%git init%%'' separat.** | **ATENȚIE: deci nu mai este nevoie sa rulăm ''%%git init%%'' separat.** | ||
| - | {{ :poo-is-ab:resurse:git_clone.png?direct&600 |}} | + | {{ :poo-is-ab:resurse:git_clone_bun.png?direct&600 |}} |
| - | În poza de mai sus se observă 2 lucruri importante, din nou: | + | În poza de mai sus se observă 3 lucruri importante, din nou: |
| - **Când s-a realizat clonarea, S-A CREAT UN FOLDER NOU CU DENUMIREA ACESTUI REPOSITORY** | - **Când s-a realizat clonarea, S-A CREAT UN FOLDER NOU CU DENUMIREA ACESTUI REPOSITORY** | ||
| - Noi trebuie să lucrăm în folderul ce conține "**.git**" deci trebuie sa folosim comanda ''%%cd%%'' pentru a ne muta în directorul corespunzător și în WSL -> Repository-ul folosit de mine se numește "LabOCW" și se poate vedea comanda ''%%cd LabOCW%%'' pentru a mă afla în folderul corect pentru când va fi necesară compilarea și rularea fișierelor | - Noi trebuie să lucrăm în folderul ce conține "**.git**" deci trebuie sa folosim comanda ''%%cd%%'' pentru a ne muta în directorul corespunzător și în WSL -> Repository-ul folosit de mine se numește "LabOCW" și se poate vedea comanda ''%%cd LabOCW%%'' pentru a mă afla în folderul corect pentru când va fi necesară compilarea și rularea fișierelor | ||
| + | - La prima conectare prin SSH, este necesară adăugarea domeniului "github.com" în lista de "gaze cunoscute" ("known hosts" în negleză) pentru a putea facilita accesul în viitor. Asta se realizează scriind "**yes**" când se cere. | ||
| - | {{ :poo-is-ab:resurse:small_test.png?direct&600 |}} | + | {{ :poo-is-ab:resurse:small_test_bun.png?direct&600 |}} |
| În poza de mai sus: | În poza de mai sus: | ||
| Line 147: | Line 148: | ||
| Pentru a rula executabilul se folosește sintaxa ''%%./numeFișier%%'', care este general valabilă în Linux pentru a rula fișiere ce pot fi executate. În cazul nostru: ''%%./exec%%''. | Pentru a rula executabilul se folosește sintaxa ''%%./numeFișier%%'', care este general valabilă în Linux pentru a rula fișiere ce pot fi executate. În cazul nostru: ''%%./exec%%''. | ||
| + | {{ :poo-is-ab:resurse:exec_test.png?direct&600 |}} | ||
| + | ==== Pasul 6 - Încărcare pe GitHub ==== | ||
| + | |||
| + | Pentru a realiza trimiterea fișierelor către repository din GitHub trebuie executate următoarele comenzi: | ||
| + | - **git add fișier** -> se adaugă fiecare fișier | ||
| + | - **git commit -m "mesaj"** -> se pregătesc fișierele pentru commit împreună cu un mesaj relevant | ||
| + | - **git status** -> e o preferință personală pentru a verifica dacă am uitat fișiere și că totul este în regulă | ||
| + | - **git push** -> deoarece am clonat prin SSH, toate informațiile necesare au fost primite încă de la început si toate modificările adăugate în commit pot fi "împinse" pe GitHub direct, fără parole sau alte configurații necesare | ||
| + | |||
| + | Concret: | ||
| + | |||
| + | {{ :poo-is-ab:resurse:git_example.png?direct&600 |}} | ||
| + | |||
| + | Și rezultatul de pe GitHub: | ||
| + | |||
| + | {{ :poo-is-ab:resurse:github_repo_commited.png?direct&600 |}} | ||
| + | |||
| + | Se poate vedea că fișierele au fost încărcate cu succes și cu mesajul corespunzător. | ||
| + | |||
| + | ===== Depanare în modulul debug din Visual Studio Code ===== | ||
| + | |||
| + | În general nu ne putem da seama, de problemele pe care codul nostru le are doar uitându-ne la el și atunci optăm la varianta de a face debug. Debug înseamnă să rulăm linie cu linie codul scris de noi sau de alte persoane pentru a identifica probleme care cauzează un comportament care nu coincide cu așteptările pe care le avem în mod normal. | ||
| + | |||
| + | Deși Visual Studio Code nu este un IDE (Integrated Development Environment) pentru că nu are un compilator preinstalat, ne oferă totuși posibilitatea de a face debugging, dar va trebui să îl configurăm puțin pentru a putea beneficia de acest "lux". | ||
| + | |||
| + | În Visual Studio Code mergem la extensii și căutăm **C/C++ Runner** și pe urmă o instalăm. | ||
| + | |||
| + | {{ :poo-is-ab:resurse:c_runner.jpeg?direct400 |}} | ||
| + | |||
| + | De asemenea pentru înfrumusețarea editorului de text vom instala și extensia **vscode-icons**. După instalare vom alege opțiunea **Set File Icon Theme** pentru a o activa. | ||
| + | |||
| + | {{ :poo-is-ab:resurse:vscode_icons.jpeg?direct&800 |}} | ||
| + | |||
| + | După instalarea celor două extensii interfața grafică ar trebui să arate în felul următor: | ||
| + | |||
| + | {{ :poo-is-ab:resurse:ui-vscode-post-install.jpeg?direct&800 |}} | ||
| + | |||
| + | <note tip>Pentru utilizatorii de Windows este necesară instalarea MinGW chiar dacă compilează codul pe WSL. Se recomandă urmarea pașilor din tutorialul de [[https://www.youtube.com/watch?v=JsO58opI3SQ|aici]]. | ||
| + | |||
| + | După ce ați urmat toți pașii din tutorial trebuie să instalați compilatorul **gdb**, care vă ajută să rulați cod de C/C++ pe Windows. Pentru aceasta trebuie rulată comanda ''**mingw-get.exe install gdb**'' direct în **Command Prompt**. | ||
| + | </note> | ||
| + | |||
| + | {{ :poo-is-ab:resurse:mingw_gdb_install.jpeg?direct&700 |}} | ||
| + | |||
| + | Dacă primiți eroarea din imagine însemnă că ați instalat compilatorul în trecut, altfel veți vedea cum se instalează efectiv compilatorul în câteva secunde în terminal. | ||
| + | |||
| + | <note>Utilizatorii care folosesc **Linux** ca și sistem de operare principal **nu** trebuie să instaleze MinGW-ul, aceștia trebuie **doar** să instaleze extensiile menționate anterior, deoarece pe Linux gdb-ul este preinstalat odată cu g++-ul.</note> | ||
| + | |||
| + | Pentru a folosi efectiv debugger-ul trebuie să punem breakpoint-uri pe liniile din cod. | ||
| + | |||
| + | {{ :poo-is-ab:resurse:breakpoint.jpeg?direct&800 |}} | ||
| + | |||
| + | Acum tot ce mai trebuie să facem este să compilăm codul folosind extensia. | ||
| + | |||
| + | {{ :poo-is-ab:resurse:build.jpeg?direct&600 |}} | ||
| + | |||
| + | În urma compilării ar trebui să se creeze un director automat de build ca în imaginea de mai jos. | ||
| + | |||
| + | {{ :poo-is-ab:resurse:build_result.jpeg?direct&200 |}} | ||
| + | |||
| + | Iar acum putem apăsa **F5** pentru a rula în modul debug. | ||
| + | |||
| + | {{ :poo-is-ab:resurse:run_debug_mode.jpeg?direct&800 |}} | ||
| + | |||
| + | <note>Pentru mai multe detalii despre cum se poate rula și depana în modulul debug o aplicație scrisă în C/C++ recomandăm citirea documentației oficiale care se poate accesa de [[https://code.visualstudio.com/docs/debugtest/debugging#_debug-actions|aici]]. </note> | ||