grau-enginyeria-informatica/docs/cheatsheets/depuracio-amb-kdbg.md
2022-11-11 22:19:01 +01:00

52 lines
1.4 KiB
Markdown

# Depuració amb Kdbg
## Depurar programa
```bash
kdbg ./executable
```
## Valors de variables i registres
Podem veure el contingut de les variables, adreces de memòria i registres afegint _watches_ durant l'execució pas a pas d'un programa.
### Contingut d'una variable
`(mida) nom_variable`
!!! example "Exemple"
`(char)`, `(char[8])`, `(short[4])`, `(int[2])`, `(long)`
### Adreça d'una variable (i contingut)
`&nom_variable`
### Contingut d'un registre de 64 bits:
`$nom_registre`
Per a veure només una part dels registres r8-r15 cal utilitzar un sufix segons el què volguem recuperar:
- `l`: 1 byte menys significatiu
- `w` (word): 2 bytes menys significatius
- `d` (double) 4 bytes menys significatius
Per als registres `rax`, `rbx`, `rcx` i `rdx` podem utilitzar:
- `al`, `bl`, `cl`, `dl`, : primer byte menys significatiu
- `ah`, `bh`, `ch`, `dh`, : segon byte menys significatiu
Per als registres `rsi`, `rdi` i `rbp` podem utilitzar:
- `sil`, `dil`, `bpl`, : primer byte menys significatiu
!!! example "Exemple"
- `$al` primer byte menys significatiu de `rax`
- `$ah` segon byte menys significatiu de `rax`
- `$ax` valor dels 2 bytes menys significatius de `rax`
- `$eax` valor dels 4 byte menys significatiu de `rax`
- `$rax` valor del `rax` sencer (8 bytes)
- `$r8l` 1 byte menys significatiu de `r8`
- `$r8d` 4 bytes menys significatius de `r8`