Benutzer-Werkzeuge

Webseiten-Werkzeuge


raspberry-pi-arm-assembly

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
raspberry-pi-arm-assembly [2021/04/18 15:19] bennyraspberry-pi-arm-assembly [2021/04/21 21:13] (aktuell) benny
Zeile 95: Zeile 95:
 0x0001007c in _start () 0x0001007c in _start ()
 (gdb)   (gdb)  
 +</code>
 +
 +==== 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
 +<code>
 +gdbserver 127.0.0.1:12345 003.elf aaaabbb
 +Listening on port 12345
 +Remote debugging from host 127.0.0.1
 +aaaabbb
 +</code>
 +Nun steuert man das Programm remote via
 +<code>
 +gdb
 +target remote :12345
 +break _start
 +cont
 +
 </code> </code>
  
Zeile 102: Zeile 119:
 (gdb) lay regs (gdb) lay regs
 </code> </code>
 +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/Adresse inspizieren ==== ==== Speicher an einer bestimmten Stelle/Adresse inspizieren ====
Zeile 109: Zeile 128:
 </code> </code>
  
 +==== Verschiedene Ausgaben ====
 +
 +<code>
 +(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
 +</code>
 +
 +===== objdump =====
 +
 +==== objdump -d ====
 +<code>
 +objdump -d <file> # oder -D
 +</code>
 +
 +==== objdump -x ====
 +<code>
 +objdump -x <file>
 +</code>
 +
 +
 +===== strace =====
 +==== Details zu strace ====
 +<code>
 +strace ./002.elf 
 +execve("./002.elf", ["./002.elf"], 0xbe85f3a0 /* 44 vars */) = 0
 +write(1, "Enter a character: ", 19Enter a character: )     = 19
 +read(0, Benny
 +"Benny\n", 8)                   = 6
 +write(1, "Benny\n", 6Benny
 +)                  = 6
 +exit(65)                                = ?
 ++++ exited with 65 +++
 +</code>
  
raspberry-pi-arm-assembly.txt · Zuletzt geändert: 2021/04/21 21:13 von benny

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki