ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

如何用 tracy-update 在分发 .tracy 跟踪文件前剔除源代码与机器码等敏感数据?

如何用 tracy-update 在分发 .tracy 跟踪文件前剔除源代码与机器码等敏感数据? 如何用 tracy-update 在分发 .tracy 跟踪文件前剔除源代码与机器码等敏感数据【免费下载链接】tracyFrame profiler项目地址: https://gitcode.com/GitHub_Trending/tr/tracy当你要把 Tracy 抓取的.tracy跟踪文件发给同事、开源社区或外部开发者时直接分发原文件可能不妥Tracy 在采集过程中会把源文件缓存以及符号对应的机器码嵌入到跟踪文件里官方手册明确提醒处理非公开代码时要格外小心因为你程序的一部分会被嵌入到捕获的跟踪中。update工具可执行程序名tracy-update提供了-s选项可以把选定类型的数据从跟踪文件中剔除生成一个新的、脱敏后的输出文件原文件保持不变。先了解跟踪文件里嵌了哪些敏感内容手册指出跟踪文件会缓存源文件内容以便在 profiler 中查看源码也会捕获可执行映像的小块代码用于反汇编检查。因此在分发前通常需要剔除的两类数据是源文件缓存source file cache被嵌入跟踪文件的源代码文本符号机器码symbol code被嵌入的可执行代码片段。如果你从源头就不想采集代码可以在编译被测应用时定义TRACY_NO_CODE_TRANSFER但对于已经抓好的跟踪文件仍然需要用tracy-update事后剔除可选分支二选一即可也可以两者都用。获取 tracy-updatetracy-update的可执行目标定义在 update/CMakeLists.txt 中入口源码见 update/src/update.cpp。构建方式与手册编译一章描述的模式一致手册以 profiler 为例cmake -B profiler/build -S profiler -DCMAKE_BUILD_TYPERelease cmake --build profiler/build --config Release --parallel把构建对象换成update目录按同样的模式操作即可cmake -B update/build -S update -DCMAKE_BUILD_TYPERelease cmake --build update/build --config Release --parallel完成后在构建目录中会得到tracy-update可执行文件Windows 下为tracy-update.exe。用 -s 选项选择要剔除的数据类型通用命令格式为来自update的 Usage 输出update [options] input.tracy output.tracy-s flags后面的标志位从下表选取用于指定要剔除的数据类型标志剔除的数据llocks锁事件mmessages消息pplots绘图数据Mmemory内存iframe images帧截图ccontext switches上下文切换ssampling data采样数据Csymbol code符号机器码Ssource file cache源文件缓存标志位可以拼接在一起。手册给出的例子是指定-s CSi会在目标跟踪文件中同时移除符号机器码、源文件缓存和帧截图。对应本文的场景分发前脱敏最小组合是-s CS./tracy-update -s CS input.tracy output.tracy被剔除的数据只作用于输出文件输入文件不会被修改所以你随时可以拿原文件重新处理或换一组标志重试。运行并检查结果执行后tracy-update会先在终端显示Loading...、Saving...完成后打印一行摘要包含输入文件的版本与大小、输出文件的版本、大小、压缩比以及耗时。手册在Trace versioning一节给出的示例输出文档示例其中的版本号、大小与耗时不是固定预期% ./tracy-update old.tracy new.tracy old.tracy (0.3.0) {916.4 MB} - new.tracy (0.4.0) {349.4 MB, 31.53%} 9.7 s, 38.13% change看到这样一行input - output的摘要即表示转换完成用-s CS处理时输出文件会明显小于输入文件少了源缓存与机器码摘要中的大小变化可以直观反映剔除效果。如果命令失败update会向 stderr 打印明确原因包括Cannot open input file!—— 输入文件路径不存在或无法打开Cannot open output file!—— 输出路径无法写入The file you are trying to open is not a tracy dump.—— 输入不是 Tracy 跟踪文件The file you are trying to open is from the future version./...from a legacy version.—— 文件版本不受当前构建支持。可选项与限制压缩方式输出默认使用 Zstd 压缩。如需更小体积或更快的保存/读取速度可加-4LZ4、-hLZ4 HC、-eLZ4 extreme或-z level指定 Zstd 压缩级别并用-j streams并行化压缩线程。手册的压缩模式对比表compressiontimes给出了各模式的体积与耗时参考可按需选择。内存需求转换时整个跟踪文件需要完整加载到内存中再写出处理超大跟踪文件前请先确认内存充足。别选错方向-c选项的作用正好相反——它是扫描缺失的源文件并补进缓存属于补全而非剔除不要在脱敏命令里误加。处理完成后把output.tracy而不是原文件交给对方即可。如果希望以后抓取的跟踪文件本身就不含代码片段记得在编译被测应用时加上TRACY_NO_CODE_TRANSFER宏。【免费下载链接】tracyFrame profiler项目地址: https://gitcode.com/GitHub_Trending/tr/tracy创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表