转储C的库汇编代码

时间:2017-03-03 15:21:38

标签: c assembly

当我使用-S开关使用GCC编译C程序时,我得到了我编写的C程序的汇编代码。但生成的程序集文件有时包含库中的代码。例如

bl remainder

有没有办法转储库函数的代码。在这种情况下,有没有办法查看库函数remainder的代码?

1 个答案:

答案 0 :(得分:1)

如果你知道它的名字或地址,你可以使用gdb来反汇编库函数(正如Mark Plotnick建议的那样)。这至少可以让你知道它的代码是什么。

然而,更好的答案是,当GCC调用标准库中的函数时,您应该下载实际的源代码!对于某些操作,源代码可能作为GCC发行本身的一部分存在,而对于其他操作,它可能是glibc的一部分,但您正在使用开源软件,因此您可以通过所有原始代码访问互联网。

我无法确切地确定您正在编译哪种架构(看起来像ARM风格之一?)。但无论哪种方式,remainder都可能是实现%运算符的内置函数,因此它随GCC一起提供。只需在GCC Git存储库中搜索remainder和您的CPU名称就可以找到它。 (这是我开始的地方:https://github.com/gcc-mirror/gcc/search?utf8=%E2%9C%93&q=remainder