2016-05-16 119 views
0

我经历了几天完成一个程序,没有进行调试,并且在我做的一个问题上,ppl建议我使用可以像VS studio一样逐行调试的调试工具。 我刚刚熟悉使用CLI。 (在VirtualBox上使用Ubuntu)以及寻找某人为我提供使用调试工具的步骤。为了以防万一,我使用NASM和Gcc工具。我使用它们就像下面的那些。如何在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

我在[x86 tag wiki](http://stackoverflow.com/tags/x86/info)中放了一小段用于使用GDB调试asm的命令。如果你还没有使用其他语言的gdb,那么你一般需要学习gdb。我绝对同意调试器对于asm必不可少的建议。你不能像在高级语言中一样分散调试'printf'调用,因为即使调用一个函数也会影响你的寄存器(并且很容易引入新的错误,并且某些函数的优化方式只适用于叶函数...) –

+0

'gcc'命令只能在32位系统上运行。在一个64位系统上,你需要用'gcc -m32'连接由'nasm -felf'创建的32位对象。请参阅[本文](http://stackoverflow.com/questions/36861903/assembling-32-bit-binaries-on-a-64-bit-system-gnu-toolchain/36901649#36901649)了解有关使用NASM构建信息和gcc。 –

+0

它听起来像你在问你在哪里可以找到一个教程 –

回答

1

GDB看起来是这里的解决方案:

gdb search 

看到这个link

+0

这几乎是一个链接唯一的答案。请详细说明。 –

+0

我认为详细阐述一个更准确的答案应该包括gdb文档,因为我没有看到任何明确的限制或要求。所以,我想让他从哪里开始。而且,au fur et a measure,他的进步,SO总是在这里,然后我会详细阐述。 – Vtik