SxsTrace 的使用场景
SxsTrace 是 Windows 上的一个 WinSxs Tracing Utility,用来跟踪诊断由激活上下文失败/不正确的 side-by-side 配置产生的错误。
例如常见的:
1 2 |
The application has failed to start because its side-by-side configuration is incorrect. Please see the application event log for more detail. |
我们用 SxsTrace 来跟踪诊断具体产生的原因。
SxsTrace 的用法
1 |
Sxstrace [{[trace /logfile: [/nostop]|[parse /logfile: /outfile: [/filter:]}] |
1.首先打开 cmd/powershell,然后执行以下命令开始跟踪:
1 2 3 4 |
sxstrace trace -logfile:<trace_log_file_with_path> #for example: sxstrace trace -logfile:D:\trace.bin |
2.运行有问题的程序->问题出现->按ENTER键停止跟踪。
3.SxsTrace的跟踪信息会保存在给定的文件中。
分析 SxsTrace 输出
1.SxsTrace 的 trace 信息是 raw 文件,查看前需要先解析成人类可读的格式:
1 2 3 4 |
sxstrace parse -logfile:<trace_log_file_with_path> -outfile:<parsed_file_with_path> #for example: sxstrace parse -logfile:D:\trace.bin -outfile:D:\trace.log |
2.打开解析完成的文件,可以看到诸如下面格式的信息,记录了激活上下文的过程:
1 2 3 4 5 6 7 8 9 10 11 |
================= Begin Activation Context Generation. Input Parameter: ...... ----------------- INFO: Parsing Manifest File <dll_file> ...... INFO: Resolving reference <DLL> ...... INFO: Activation Context generation succeeded. End Activation Context Generation. |
2.找到出错的地方:
******由于有些信息比较敏感,所以我做了些处理******
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
================= Begin Activation Context Generation. Input Parameter: Flags = 0 ProcessorArchitecture = AMD64 CultureFallBacks = en-US;en ManifestPath = <file> AssemblyDirectory = <path> Application Config File = ----------------- INFO: Parsing Manifest File <file> INFO: Manifest Definition Identity is (null). INFO: Reference: <dll>,processorArchitecture="amd64",publicKeyToken="<key>",type="win32",version="<version>" INFO: Resolving reference <dll>,processorArchitecture="amd64",publicKeyToken="<key>",type="win32",version="<version>". INFO: Resolving reference for ProcessorArchitecture amd64. INFO: Resolving reference for culture Neutral. INFO: Applying Binding Policy. INFO: No publisher policy found. INFO: No binding policy redirect found. INFO: Begin assembly probing. INFO: Did not find the assembly in WinSxS. INFO: Attempt to probe manifest at <path_to_dll>. INFO: Did not find manifest for culture Neutral. INFO: End assembly probing. ERROR: Cannot resolve reference <dll>,processorArchitecture="amd64",publicKeyToken="<key>",type="win32",version="<version>". ERROR: Activation Context generation failed. End Activation Context Generation. |
问题找到了,是由于某个动态链接库找不到导致的,安装相应版本的运行库就能解决。
如无注明,均为原创。转载请注明: 转载自MITGAI`S THINKING
本文链接地址: 使用 SxsTrace 工具跟踪诊断 side-by-side 问题
本文链接地址: 使用 SxsTrace 工具跟踪诊断 side-by-side 问题
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。
如果本文对您生活或工作产生了积极影响,那我非常高兴。
如果您愿意为文章的内容或想法提供支持,欢迎点击下边的捐赠按钮,资助作者创作更多高价值高品质的内容。
如果您愿意为文章的内容或想法提供支持,欢迎点击下边的捐赠按钮,资助作者创作更多高价值高品质的内容。