diff --git a/docs/cheatsheets/depuracio-amb-kdbg.md b/docs/cheatsheets/depuracio-amb-kdbg.md new file mode 100644 index 0000000..bfc85dd --- /dev/null +++ b/docs/cheatsheets/depuracio-amb-kdbg.md @@ -0,0 +1,52 @@ +# 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` diff --git a/mkdocs.yml b/mkdocs.yml index 94b2932..32c0f11 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -42,3 +42,4 @@ nav: - Inici: index.md - Cheatsheets: - Compilació Assemblador: cheatsheets/compilacio-assemblador.md + - Depuració amb Kdbg: cheatsheets/depuracio-amb-kdbg.md