Google的dump_syms
程序需要输入文件和输出文件来编写符号化文件,例如:
$ dump_syms ./test.so > test.so.sym
我在内存缓冲区中有test.so
的二进制文件。如果我首先将二进制文件写入临时文件然后将其提供给dump_syms
然后删除此临时源,那么它在性能方面表现不佳。
是否有可能以某种方式直接将二进制数据传输到dump_syms
以绕过文件系统?我相信必须有一种方法可能来自Linux的原生管道视角来做到这一点。
我知道dump_syms
最好的方法是支持滚边,但我想它没有这个功能。考虑到这一点,如果有任何提示,或许修改dump_syms以接受管道,我也很乐意听到这一点。
答案 0 :(得分:1)
你可以制作一个" named pipe,"然后将其名称(将是文件系统上的路径)传递给dump_syms
。 dump_syms
是否仍然有用我无法说明,因为它可能需要管道不支持的随机访问。
或者,如果您可以控制存储缓冲区的位置,那么您可以mmap
一个文件,使用该内存区域来存储数据,然后给出该内存映射文件的名称到dump_syms
。