是否可以将二进制数据传递到breakpad的dump_syms中

时间:2014-11-10 07:01:50

标签: linux pipe google-breakpad

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

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

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

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

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

1 个答案:

答案 0 :(得分:1)

你可以制作一个" named pipe,"然后将其名称(将是文件系统上的路径)传递给dump_symsdump_syms是否仍然有用我无法说明,因为它可能需要管道不支持的随机访问。

或者,如果您可以控制存储缓冲区的位置,那么您可以mmap一个文件,使用该内存区域来存储数据,然后给出该内存映射文件的名称到dump_syms