有什么快速查找汇编程序源代码的方法吗?
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 目录,看看它们实现了什么。
我正在尝试为 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 目录,看看它们实现了什么。