raspberry-pi-arm-assembly
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
| raspberry-pi-arm-assembly [2021/04/18 15:19] – benny | raspberry-pi-arm-assembly [2024/06/09 10:29] (aktuell) – Externe Bearbeitung 127.0.0.1 | ||
|---|---|---|---|
| Zeile 95: | Zeile 95: | ||
| 0x0001007c in _start () | 0x0001007c in _start () | ||
| (gdb) | (gdb) | ||
| + | </ | ||
| + | |||
| + | ==== gdbserver und remote==== | ||
| + | Ich hatte in einigen Fällen STDOUT nicht in der gdb-cmd-Ausgabe (zumindes nicht, wie ich es erwartet hatte). In solchen Fällen hilft es das Programm über gdbserver zu starten | ||
| + | < | ||
| + | gdbserver 127.0.0.1: | ||
| + | Listening on port 12345 | ||
| + | Remote debugging from host 127.0.0.1 | ||
| + | aaaabbb | ||
| + | </ | ||
| + | Nun steuert man das Programm remote via | ||
| + | < | ||
| + | gdb | ||
| + | target remote :12345 | ||
| + | break _start | ||
| + | cont | ||
| + | |||
| </ | </ | ||
| Zeile 102: | Zeile 119: | ||
| (gdb) lay regs | (gdb) lay regs | ||
| </ | </ | ||
| + | Wer dies gern nutzt, sollte es in der ~/.gdbinit hinterlegen. | ||
| + | Mit "focus cmd" funktioniert dann der "Pfeil nach oben" auch wieder. Wer im ASM-Code navigieren möchte, setzt den "focus asm" oder "focus prev". | ||
| ==== Speicher an einer bestimmten Stelle/ | ==== Speicher an einer bestimmten Stelle/ | ||
| Zeile 109: | Zeile 128: | ||
| </ | </ | ||
| + | ==== Verschiedene Ausgaben ==== | ||
| + | |||
| + | < | ||
| + | (gdb) p/d 0xA # hex to dec | ||
| + | $1 = 10 | ||
| + | (gdb) p/t 0xA # hex to bin | ||
| + | $2 = 1010 | ||
| + | (gdb) p/t 0x4 # dec to bin | ||
| + | $3 = 100 | ||
| + | (gdb) p/x 10 # dec to hex | ||
| + | $4 = 0xa | ||
| + | </ | ||
| + | |||
| + | ===== objdump ===== | ||
| + | |||
| + | ==== objdump -d ==== | ||
| + | < | ||
| + | objdump -d < | ||
| + | </ | ||
| + | |||
| + | ==== objdump -x ==== | ||
| + | < | ||
| + | objdump -x < | ||
| + | </ | ||
| + | |||
| + | |||
| + | ===== strace ===== | ||
| + | ==== Details zu strace ==== | ||
| + | < | ||
| + | strace ./ | ||
| + | execve(" | ||
| + | write(1, "Enter a character: ", 19Enter a character: ) = 19 | ||
| + | read(0, Benny | ||
| + | " | ||
| + | write(1, " | ||
| + | ) = 6 | ||
| + | exit(65) | ||
| + | +++ exited with 65 +++ | ||
| + | </ | ||
raspberry-pi-arm-assembly.1618759186.txt.gz · Zuletzt geändert: (Externe Bearbeitung)
