有什么快速查找汇编程序源代码的方法吗?

Is there any fast way to find assembler source code?

我正在尝试为 printf、puts 等基本功能找到 dietlibc 源代码。目前在它们应该在的文件夹中使用 grep {command_name} -r -A20,但看起来真的很累.有没有更快的方法?

另一种已知的方法是为每个函数反转目标文件,但我认为这会花费更多时间。

I've already found folder with *.S files, but for the most basic functions such as printf() there are only .c files

许多函数用C语言编写的,并且它们是根据其他C函数and/or汇编语言函数编写的。因此 printf()(在 .../libstdio/printf.c 中),例如,使用 vprintf(),它使用 __v_printf()(在 .../lib/__v_printf.c 中),它使用 strcpy()strlen() 等,在 .../arm 中有 ARM 实现。一些函数同时在 C 和汇编中实现,可能是因为汇编在某些体系结构上提供了性能提升,但在其他体系结构上却没有(或者可能是因为没有人为某些体系结构编写汇编版本)。

因此,如果您正在寻找 printf.S,您可能不会在任何体系结构中找到它,因为它是调用其他函数的相对高级函数。这意味着您可以将 dietlibc 移植到新的体系结构,而不必为库中的每个函数编写汇编版本;您只需实施一小组基本例程。阅读 PORTING 文件以了解必须执行哪些操作才能移植到新架构,这将帮助您了解那些核心例程是什么。或者,只需查看几个 architecture-specific 目录,看看它们实现了什么。