Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pclp2:laboratoare:laborator-02 [2023/04/06 14:47]
127.0.0.1 external edit
pclp2:laboratoare:laborator-02 [2024/02/08 19:53] (current)
dragos.niculescu [9. Configurare vscode cu gdb]
Line 525: Line 525:
 </​code>​ </​code>​
  
 +
 +==== 9. Configurare vscode cu gdb ==== 
 +
 +=== Configurare === 
 +    - extensii de instalat: Makefile tools, x86 and x86_64 Assembly, GDB Debug (by DamianKoper)
 +    - Terminal/​Configure Default Build Task - se editează .vscode/​tasks.json,​ la commandă se trece ''​make all'' ​
 +    <code json>
 +    "​command":​ "​make",​
 + "​args":​ [
 + "​all",​
 + ""​
 + ],
 + "​options":​ {
 + "​cwd":​ "​${fileDirname}"​
 + },
 + "​group":​ {
 + "​kind":​ "​build",​
 + "​isDefault":​ true
 + },
 +    </​code> ​    
 +     - la tastele Ctrl-Shift-B se lansează comanda make all, îar în terminal se poate da Ctrl-Click pe numele fișierului cu eroare ​
 +     - Fie se tastează F5 pentru a demara debug, fie se editează direct .vscode/​launch.json;​ trebuie să conțină ​
 +     <​code json>
 +      "​stopAtEntry":​ true,
 +      "​cwd":​ "/​tmp/​01-hello-world",​
 +      "​program":​ "/​tmp/​01-hello-world/​hello",​
 +      "​miDebuggerPath":​ "​gdb",​
 +      "​args":​ ["<",​ "​1.in"​],​ //Dacă la debug vrem stdin dintr-un fișier 1.in  ​
 +     </​code>​
 +     - la comanda F5, debuggerul trebuie să pornească și să se oprească pe prima instrucțiune;​ cu Ctrl-Shift-D activăm fereastra de debug 
 +     - dacă avem module C, în acele module la buton dreapta apare opțiunea '​Disasembly window'​
 +
 +=== Operare ===
 +  * Se pot pune breakpointuri cu click dreapta în coloana din stânga numărului de line 
 +  * în debug window (Ctrl-Shift-D),​ se recomandă activarea VAriables, Watch, și Call Stack
 +  * Variables/​Locals - apar variabilele din funcțiile C 
 +  * Variables/​Rergisters/​CPU - registrele pe 32 biți
 +  * Watch/+ se adaugă ''​`print $eflags''​ pentru a vedea flagurile actualizate ​
 +  * În modul debug, cu click dreapta în sursă, se poate deschide 'Open disassembly view' ​
 +  * În disasembly mode se pot pune breakpointuri în coloana din stânga adreselor; F10, F11 și Shift-F11 merg
 +  * În fereastra Terminal apar stdio+stdin ale progamului
 +  * În fereastra Debug Console apare promptul gdb; toate comenzile trebuie precedate de backquote ''​`'' ​
 +
 +=== Hot Keys === 
 +  * Ctrl-Shift-D debug window ​
 +  * F5 start debugging, și continuă
 +  * F10 step over - execută toată funcția
 +  * F11 step into - intră în funcții  ​
 +  * Shift-F11 step out - iese din apelul curent ​
 +  * 
 +  ​
 ===== Soluții ===== ===== Soluții =====
 Soluțiile pentru exerciții sunt disponibile [[https://​elf.cs.pub.ro/​asm/​res/​laboratoare/​lab-02-sol.zip|aici]]. Soluțiile pentru exerciții sunt disponibile [[https://​elf.cs.pub.ro/​asm/​res/​laboratoare/​lab-02-sol.zip|aici]].
pclp2/laboratoare/laborator-02.1680781658.txt.gz · Last modified: 2024/01/18 15:38 (external edit)
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0