0

Google 的dump_syms程序需要一个输入文件和一个输出文件来编写符号化文件,例如:

$ dump_syms ./test.so > test.so.sym

test.so在内存缓冲区中有二进制文件。如果我首先将二进制文件写入临时文件,然后将其提供给dump_syms然后删除此临时源,则性能不佳。

是否有可能以某种方式直接将二进制数据传输到dump_syms文件系统中以绕过文件系统?我相信从 Linux 的原生管道的角度来看,一定有一种方法可以做到这一点。

我知道最好的方法是dump_syms支持管道,但我想它没有这个功能。考虑到这一点,如果有任何提示可以修改 dump_syms 以接受管道,我也很想听听。

4

1 回答 1

1

您可以创建一个“命名管道”,然后将其名称(将是文件系统上的路径)传递给dump_syms. dump_syms我不能说是否仍然有效,因为它可能需要管道不支持的随机访问。

或者,如果您可以控制首先在内存中存储缓冲区的位置,您可以mmap创建一个文件,使用该内存区域存储数据,然后将该内存映射文件的名称命名为dump_syms.

于 2014-11-10T07:18:03.390 回答