我需要知道汇编程序来调试用C编写的程序吗?

我需要知道汇编程序来调试用C编写的程序吗?,c,debugging,assembly,C,Debugging,Assembly,我正在用《C编程语言》(第二版)学习C语言,也在做每一个练习 为了调试我作为书籍练习的解决方案编写的C程序,我需要了解汇编吗 另外,您建议使用哪种调试器?它不是必需的,但有时非常有用。如果您使用的是MSVC++,只需使用IDE中的一个,它也可以显示反汇编。不,学习C不需要了解汇编 就调试器而言,可能最简单的选择是使用内置在您使用的IDE中的调试器。在Windows上,很流行(有一个)。是另一种流行的选择,可在许多平台上使用 也有命令行调试器,例如,但它们比基于GUI的调试器更难入门。为了一步一步

我正在用《C编程语言》(第二版)学习C语言,也在做每一个练习

为了调试我作为书籍练习的解决方案编写的C程序,我需要了解汇编吗


另外,您建议使用哪种调试器?

它不是必需的,但有时非常有用。如果您使用的是MSVC++,只需使用IDE中的一个,它也可以显示反汇编。

不,学习C不需要了解汇编

就调试器而言,可能最简单的选择是使用内置在您使用的IDE中的调试器。在Windows上,很流行(有一个)。是另一种流行的选择,可在许多平台上使用


也有命令行调试器,例如,但它们比基于GUI的调试器更难入门。

为了一步一步地调试,了解汇编可能会有所帮助,但不是必需的。如果确实有必要,它还取决于调试器


但是还有其他的调试程序的方法,例如在战略位置放置
printf()
调用。

不,你没有。有一个很好的调试器。其他选项是或。

不,asm不是必需的,但很有用,正如其他人所说,使用调试器。。。其他人没有说的是,您甚至可以使用GDB,但确保禁用编译器优化或调试可能很困难。

当您使用GCC
-g2
-g3
标记编译时,您可以使用GDB调试程序。在这里您可以找到一个简短的教程如何使用GDB,在这里您可以找到一个更广泛的教程

如果您要调试自己的程序,您不需要学习汇编。编译器可以将源代码信息嵌入可执行文件(
-g
带有GCC的标志)或一个辅助文件(
/Z
带有MSVC的标志系列)

开始使用调试器并不困难(即使您使用命令行调试器),而且internet上到处都有大量的资源。这是能给你最大回报的投资


尽管如此,掌握汇编语言有时还是很有用的。当您想检查一些优化是如何完成的时,有时(很少)需要查看编译器生成的程序集。但是,除非你有一个非常具体的工作,否则你不应该担心这个问题。

你不需要知道用C编写程序的汇编,包括调试。然而,如果你知道汇编,C开始有很多意义;对汇编有一些概念(最好是对几种不同的体系结构有一些概念,如x86和ARM),这确实很有帮助,而且不仅仅是为了调试。

不,你不需要,但它可能比gdb更容易学习!;-)同意。了解机器的实际工作原理有助于更好地编写C语言。学习汇编语言将有助于您掌握机器如何在较低级别上工作以及为什么要编写C语言。