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: 2024/06/09 10:29 (Externe Bearbeitung)