将PDB和PE文件发布到符号存储
symstore的Python项目详细描述
用于将windows调试符号发布到符号存储区的python模块和命令行实用程序。 以这种格式发布的符号可以由windows的常用开发工具(如visual studio和windbg)使用。 有关Windows符号存储的详细信息,请参见Using SymStore。
目前可以将pdb和pe(exe和dll)文件发布到本地文件系统。
安装
通过运行pip实用程序安装:
$ pip install symstore
这将安装命令行实用程序symstore以及python模块symstore。
也可以从源代码安装symstore包。 例如,使用以下命令克隆symstore的git存储库:
$ git clone <repo-url> symstore
并使用pip安装:
$ pip install symstore/
使用
命令行
使用symstore命令发布符号。有关详细信息,请运行symstore --help。
python模块
要以编程方式发布符号,请使用symstore模块。 有关如何使用api的示例,请参见symstore/command_line.py。
压缩
symstore包支持在发布数据文件时压缩它们。 这可能导致在访问符号时需要传输的数据显著减少。
压缩模式使用--compress或-z标记激活到symstore命令行实用程序。
symstore通过内省使用本机gcab库来压缩数据。 必须在系统上提供所需的软件包,压缩模式才能工作。
在ubuntu 18.04上,安装以下软件包:
- gir1.2-gcab-1.0
- python-gi
在ubuntu 16.04上,安装以下软件包:
- gir1.2-libgcab-1.0
- python-gi
如果symstore在请求压缩模式时无法找到python gi和gir包,将显示以下错误消息:
gcab module not available, compression not supported
更改日志
0.2.6(2019年8月29日)
- 操作期间不要泄漏打开的文件句柄(问题10)
0.2.5(2018年12月16日)
- 正式支持Python3.7
- 修正了windows/python2.7上history.txt的写入错误
0.2.4(2018年1月31日)
- 改进了对缺少gcab python绑定的错误处理
0.2.3(2017年6月24日)
- 支持发布根流更长的pdb(甚至更大的文件)
- 正式支持Python3.6
0.2.2(2017年1月16日)
- 支持在新事务中重新发布同一文件
- 在意外的文件扩展名上打印好的错误消息
- 文档中有关如何设置GCAB以启用压缩的更多详细信息
0.2.1(2016年9月29日)
- 为年龄大于10岁的PDB生成正确的签名
- 支持发布具有多页根流(较大文件)的PDB
- 从dbi流获取pdb age
- 支持发布没有dbi流的pdb
0.2.0(2016年3月22日)
- 增加了压缩支持
0.1.1(2016年2月10日)
- 放弃对pdbparse的依赖并构造模块
- 增加了对Python3的支持
0.1.0(2016年1月14日)
- 删除了对pefile模块的依赖关系
- 在currupt pe文件上打印好的错误消息