2016-05-16 11 views
0

Ich habe erlebt, ein Programm für ein paar Tage zu absolvieren, ohne zu debuggen, und auf einer der Frage, die ich tat, ppl schlug mir vor, Debug-Tools zu verwenden, die Zeile für Zeile debuggen wie VS Studio tun. Ich bin gerade mit der Verwendung von CLI vertraut. (mit Ubuntu auf VirtualBox.) und auf der Suche nach jemandem, der mir anbietet, Schritte zu nähern mit Debug-Tools. Nur für den Fall, benutze ich NASM und GCC-Tool. und ich benutze sie wie die unten.Wie Debuggen in ASM? (Ubuntu)

nasm -f elf search.asm (this makes search.o) 
gcc -o search search.o asm_io.o (I use the external file to use some functions) 
./search  
+1

Ich habe einen winzigen Abschnitt in das [x86-Tag-Wiki] (http://Stackoverflow.com/tags/x86/info) auf die Befehle, die zum Debuggen von Asm mit GDB nützlich sind. Wenn Sie gdb nicht für andere Sprachen verwendet haben, müssen Sie gdb im Allgemeinen lernen. Ich stimme dem Rat absolut zu, dass ein Debugger für asm essentiell ist. Sie können Debug 'printf'-Aufrufe nicht einfach so zerstreuen, wie Sie es in höheren Sprachen können, denn selbst der Aufruf einer Funktion wird Ihre Register beeinflussen (und es ist einfach, neue Bugs einzuführen, und einige Funktionen sind so optimiert, dass sie nur für Blatt funktionieren Funktionen ...) –

+0

Dieser 'gcc' Befehl wird nur auf einem 32bit System funktionieren. Auf einem 64-Bit-System benötigen Sie 'gcc -m32', um 32bit-Objekte zu verknüpfen, die von' nasm -felf' erstellt wurden. Siehe [diesen Beitrag] (http://stackoverflow.com/questions/36861903/assembling-32-bit-binaries-on-a-64-bit-system-gnu-toolchain/36901649#36901649) für Informationen zum Bauen mit NASM und gcc. –

+0

Es hört sich so an, als würden Sie fragen, wo Sie ein Tutorial finden können. –

Antwort

1

gdb sieht hier eine Lösung zu sein:

gdb search 

sehen diese link.

+0

Das ist so ziemlich eine Link-Only-Antwort. Bitte erläutern. –

+0

Ich denke, dass die Ausarbeitung einer präziseren Antwort wäre die Einbeziehung des gdb-Dokuments, da ich keine genauen Einschränkungen oder Anforderungen sehe. Also wollte ich ihn dahin bringen, wo ich anfangen soll. Und, für ein Maß, seinen Fortschritt, SO ist immer da und ich würde dann mehr erarbeiten. – Vtik