利用sxstrace跟踪程序不能启动的问题

一、引言

今天在使用一个64位程序时遇到一个应用程序无法运行的问题,出现的错误提示如<图1>,同样的32位版本在64位机上运行都木问题,难道64位程序在64位机上还有问题。用depends查了下程序的依赖的动态库,发现缺vc9的动态库,找了个vc的redists库安装了事,可是还是不行。。。。。。折腾了好半天。

木办法,根据提示,google了一下sxstrace,了解到sxstrace是一款强大的程序跟踪工具。可以跟踪到程序运行的很多细节,从而为解决程序出现的问题提供思路。又折腾一会儿,终于熟悉了sxstrace的用法,记录下,方便以后使用。

 

图 1

 

二、SxsTrace简介

SxsTrace.exe(SxS程序跟踪工具)是一个可执行性的软件。微软公司的操作系统版本号在6.0.18000之后的操作系统才会包含有此软件,如vista、windows 2008、windows 7等均带有SxsTrace.exe,在此之前的操作系统则没有。是微软PC 操作系统中非常实用的一款程序日志追踪工具。

 

三、sxstrace的用法

 

步骤:

1、           启动sxstrace

在windows 7 要用管理员权限才能启动sxstrace,启动命令如下:

        sxstrace.exe  Trace  -logfile:C:\tmp\MySxSTrace.log

 

<图 2>

2、           运行程序。

在启动sxstrace后,在另外的cmd窗口运行你的程序,如果是非控制台程序,直接运行即可。

 

<图 3>

3、           转换和查看log

在程序执行完了后,在运行sxstrace的窗口,按提示输入 “Enter”,再运行以下命令:

sxstrace.exe Parse -logfile:C:\tmp\MySxSTrace.log -outfile:C:\tmp\MySxSTrace.txt

 

用文本编辑工具打开MySxSTrace.txt即可看到问题详细描述。仔细查看原来是vc90的版本不对。

 

MySxSTrace.txt内容:

=================

开始生成激活上下文。

输入参数:

         Flags= 0

         ProcessorArchitecture= AMD64

         CultureFallBacks= zh-CN;zh-Hans;zh;en-US;en

         ManifestPath= C:\Program Files(x86)\thit\TiVue\converter\lib3dx\win_b64\code\bin\setcatenv.exe

         AssemblyDirectory= C:\Program Files (x86)\thit\TiVue\converter\lib3dx\win_b64\code\bin\

         ApplicationConfig File =

-----------------

信息: 正在解析清单文件 C:\Program Files(x86)\thit\TiVue\converter\lib3dx\win_b64\code\bin\setcatenv.exe。

         信息: 指令清单定义标识是(null)。

         信息: 参考:Microsoft.VC90.CRT,processorArchitecture="amd64",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="9.0.30729.4967"

信息: 正在解析参考Microsoft.VC90.CRT,processorArchitecture="amd64",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="9.0.30729.4967"。

         信息: 正在解析ProcessorArchitecture amd64 的参考。

                   信息: 正在解析区域性Neutral 的参考。

                            信息: 正在应用绑定策略。

                                     信息: 在C:\Windows\WinSxS\manifests\amd64_policy.9.0.microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.4940_none_acd19a1fe1da248a.manifest查找发布服务器策略。

                                     信息: 未找到绑定策略重定向。

                            信息: 开始程序集探测。

                                     信息: 未找到 WinSxS 中的程序集。

                                     信息: 尝试在C:\Windows\assembly\GAC_64\Microsoft.VC90.CRT\9.0.30729.4967__1fc8b3b9a1e18e3b\Microsoft.VC90.CRT.DLL上探测指令清单。

                                     信息: 尝试在C:\Program Files(x86)\thit\TiVue\converter\lib3dx\win_b64\code\bin\Microsoft.VC90.CRT.DLL 上探测指令清单。

                                     信息: 尝试在C:\Program Files (x86)\thit\TiVue\converter\lib3dx\win_b64\code\bin\Microsoft.VC90.CRT.MANIFEST上探测指令清单。

                                     信息: 尝试在C:\Program Files(x86)\thit\TiVue\converter\lib3dx\win_b64\code\bin\Microsoft.VC90.CRT\Microsoft.VC90.CRT.DLL上探测指令清单。

                                     信息: 尝试在C:\Program Files (x86)\thit\TiVue\converter\lib3dx\win_b64\code\bin\Microsoft.VC90.CRT\Microsoft.VC90.CRT.MANIFEST上探测指令清单。

                                     信息: 未找到区域性Neutral 的指令清单。

                            信息: 结束程序集探测。

         错误: 无法解析参考Microsoft.VC90.CRT,processorArchitecture="amd64",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="9.0.30729.4967"。

错误: 生成激活上下文失败。

结束生成激活上下文。

 

4、           安装正确vc版本后跟踪到的信息。

 

正确启动后MySxSTrace.txt内容:

=================

开始生成激活上下文。

输入参数:

         Flags= 0

         ProcessorArchitecture= AMD64

         CultureFallBacks= zh-CN;zh-Hans;zh;en-US;en

         ManifestPath= C:\Program Files(x86)\thit\TiVue\converter\lib3dx\win_b64\code\bin\setcatenv.exe

         AssemblyDirectory= C:\Program Files (x86)\thit\TiVue\converter\lib3dx\win_b64\code\bin\

         ApplicationConfig File =

-----------------

信息: 正在解析清单文件 C:\Program Files(x86)\thit\TiVue\converter\lib3dx\win_b64\code\bin\setcatenv.exe。

         信息: 指令清单定义标识是(null)。

         信息: 参考: Microsoft.VC90.CRT,processorArchitecture="amd64",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="9.0.30729.4967"

信息: 正在解析参考Microsoft.VC90.CRT,processorArchitecture="amd64",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="9.0.30729.4967"。

         信息: 正在解析ProcessorArchitecture amd64 的参考。

                   信息: 正在解析区域性Neutral 的参考。

                            信息: 正在应用绑定策略。

                                     信息: 在C:\Windows\WinSxS\manifests\amd64_policy.9.0.microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.4967_none_acd2fb3be1d90a9f.manifest查找发布服务器策略。

                                     信息: 发布服务器策略重定向的程序集版本。

                                     信息: 发布策略程序集标识是Microsoft.VC90.CRT,processorArchitecture="amd64",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="9.0.30729.4967"。

                            信息: 开始程序集探测。

                                     信息: 尝试在C:\Windows\WinSxS\manifests\amd64_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.4967_none_08e58abba83c6451.manifest上探测指令清单。

                                     信息: 在C:\Windows\WinSxS\manifests\amd64_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.4967_none_08e58abba83c6451.manifest上找到指令清单。

                            信息: 结束程序集探测。

信息: 正在解析参考Microsoft.VC90.CRT.mui,language="&#x2a;",processorArchitecture="amd64",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="9.0.30729.4967"。

         信息: 正在解析ProcessorArchitecture amd64 的参考。

                   信息: 正在解析区域性 zh-CN的参考。

                            信息: 正在应用绑定策略。

                                     信息: 未找到发布服务器策略。

                                     信息: 未找到绑定策略重定向。

                            信息: 开始程序集探测。

                                     信息: 未找到 WinSxS 中的程序集。

                                     信息: 尝试在C:\Windows\assembly\GAC_64\Microsoft.VC90.CRT.mui\9.0.30729.4967_zh-CN_1fc8b3b9a1e18e3b\Microsoft.VC90.CRT.mui.DLL上探测指令清单。

                                     信息: 未找到区域性 zh-CN 的指令清单。

                            信息: 结束程序集探测。

                   信息: 正在解析区域性zh-Hans 的参考。

                            信息: 正在应用绑定策略。

                                     信息: 未找到发布服务器策略。

                                     信息: 未找到绑定策略重定向。

                            信息: 开始程序集探测。

                                     信息: 未找到 WinSxS 中的程序集。

                                     信息: 尝试在C:\Windows\assembly\GAC_64\Microsoft.VC90.CRT.mui\9.0.30729.4967_zh-Hans_1fc8b3b9a1e18e3b\Microsoft.VC90.CRT.mui.DLL上探测指令清单。

                                      信息: 未找到区域性zh-Hans 的指令清单。

                            信息: 结束程序集探测。

                   信息: 正在解析区域性 zh 的参考。

                            信息: 正在应用绑定策略。

                                     信息: 未找到发布服务器策略。

                                     信息: 未找到绑定策略重定向。

                            信息: 开始程序集探测。

                                     信息: 未找到 WinSxS 中的程序集。

                                     信息: 尝试在C:\Windows\assembly\GAC_64\Microsoft.VC90.CRT.mui\9.0.30729.4967_zh_1fc8b3b9a1e18e3b\Microsoft.VC90.CRT.mui.DLL上探测指令清单。

                                     信息: 未找到区域性 zh 的指令清单。

                            信息: 结束程序集探测。

                   信息: 正在解析区域性 en-US的参考。

                            信息: 正在应用绑定策略。

                                     信息: 未找到发布服务器策略。

                                     信息: 未找到绑定策略重定向。

                            信息: 开始程序集探测。

                                     信息: 未找到 WinSxS 中的程序集。

                                     信息: 尝试在C:\Windows\assembly\GAC_64\Microsoft.VC90.CRT.mui\9.0.30729.4967_en-US_1fc8b3b9a1e18e3b\Microsoft.VC90.CRT.mui.DLL上探测指令清单。

                                     信息: 未找到区域性 en-US 的指令清单。

                            信息: 结束程序集探测。

                   信息: 正在解析区域性 en 的参考。

                            信息: 正在应用绑定策略。

                                     信息: 未找到发布服务器策略。

                                     信息: 未找到绑定策略重定向。

                            信息: 开始程序集探测。

                                     信息: 未找到 WinSxS 中的程序集。

                                     信息: 尝试在C:\Windows\assembly\GAC_64\Microsoft.VC90.CRT.mui\9.0.30729.4967_en_1fc8b3b9a1e18e3b\Microsoft.VC90.CRT.mui.DLL上探测指令清单。

                                     信息: 未找到区域性 en 的指令清单。

                            信息: 结束程序集探测。

信息: 正在解析清单文件 C:\Windows\WinSxS\manifests\amd64_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.4967_none_08e58abba83c6451.manifest。

         信息: 指令清单定义标识是Microsoft.VC90.CRT,processorArchitecture="amd64",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="9.0.30729.4967"。

信息: 生成激活上下文成功。

结束生成激活上下文。

 

………

 

=================

开始生成激活上下文。

输入参数:

         Flags= 0

         ProcessorArchitecture= AMD64

         CultureFallBacks= zh-CN;zh-Hans;zh;en-US;en

         ManifestPath= C:\Program Files(x86)\thit\TiVue\converter\lib3dx\win_b64\code\bin\JS0INITENV.dll

         AssemblyDirectory= C:\Program Files (x86)\thit\TiVue\converter\lib3dx\win_b64\code\bin\

         ApplicationConfig File =

-----------------

信息: 正在解析清单文件 C:\Program Files(x86)\thit\TiVue\converter\lib3dx\win_b64\code\bin\JS0INITENV.dll。

         信息: 指令清单定义标识是(null)。

         信息: 参考:Microsoft.VC90.CRT,processorArchitecture="amd64",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="9.0.30729.4967"

信息: 正在解析参考Microsoft.VC90.CRT,processorArchitecture="amd64",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="9.0.30729.4967"。

         信息: 正在解析ProcessorArchitecture amd64 的参考。

                   信息: 正在解析区域性Neutral 的参考。

                            信息: 正在应用绑定策略。

                                     信息: 在 C:\Windows\WinSxS\manifests\amd64_policy.9.0.microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.4967_none_acd2fb3be1d90a9f.manifest查找发布服务器策略。

                                     信息: 发布服务器策略重定向的程序集版本。

                                     信息: 发布策略程序集标识是Microsoft.VC90.CRT,processorArchitecture="amd64",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="9.0.30729.4967"。

                            信息: 开始程序集探测。

                                     信息: 尝试在C:\Windows\WinSxS\manifests\amd64_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.4967_none_08e58abba83c6451.manifest上探测指令清单。

                                     信息: 在C:\Windows\WinSxS\manifests\amd64_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.4967_none_08e58abba83c6451.manifest上找到指令清单。

                            信息: 结束程序集探测。

信息: 正在解析参考Microsoft.VC90.CRT.mui,language="&#x2a;",processorArchitecture="amd64",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="9.0.30729.4967"。

         信息: 正在解析 ProcessorArchitectureamd64 的参考。

                   信息: 正在解析区域性 zh-CN的参考。

                            信息: 正在应用绑定策略。

                                     信息: 未找到发布服务器策略。

                                     信息: 未找到绑定策略重定向。

                            信息: 开始程序集探测。

                                     信息: 未找到 WinSxS 中的程序集。

                                     信息: 尝试在C:\Windows\assembly\GAC_64\Microsoft.VC90.CRT.mui\9.0.30729.4967_zh-CN_1fc8b3b9a1e18e3b\Microsoft.VC90.CRT.mui.DLL上探测指令清单。

                                     信息: 未找到区域性 zh-CN 的指令清单。

                            信息: 结束程序集探测。

                   信息: 正在解析区域性zh-Hans 的参考。

                            信息: 正在应用绑定策略。

                                     信息: 未找到发布服务器策略。

                                     信息: 未找到绑定策略重定向。

                            信息: 开始程序集探测。

                                     信息: 未找到 WinSxS 中的程序集。

                                     信息: 尝试在C:\Windows\assembly\GAC_64\Microsoft.VC90.CRT.mui\9.0.30729.4967_zh-Hans_1fc8b3b9a1e18e3b\Microsoft.VC90.CRT.mui.DLL上探测指令清单。

                                     信息: 未找到区域性zh-Hans 的指令清单。

                            信息: 结束程序集探测。

                   信息: 正在解析区域性 zh 的参考。

                            信息: 正在应用绑定策略。

                                     信息: 未找到发布服务器策略。

                                     信息: 未找到绑定策略重定向。

                            信息: 开始程序集探测。

                                     信息: 未找到 WinSxS 中的程序集。

                                     信息: 尝试在C:\Windows\assembly\GAC_64\Microsoft.VC90.CRT.mui\9.0.30729.4967_zh_1fc8b3b9a1e18e3b\Microsoft.VC90.CRT.mui.DLL上探测指令清单。

                                     信息: 未找到区域性 zh 的指令清单。

                            信息: 结束程序集探测。

                   信息: 正在解析区域性 en-US的参考。

                            信息: 正在应用绑定策略。

                                     信息: 未找到发布服务器策略。

                                     信息: 未找到绑定策略重定向。

                            信息: 开始程序集探测。

                                     信息: 未找到 WinSxS 中的程序集。

                                     信息: 尝试在C:\Windows\assembly\GAC_64\Microsoft.VC90.CRT.mui\9.0.30729.4967_en-US_1fc8b3b9a1e18e3b\Microsoft.VC90.CRT.mui.DLL上探测指令清单。

                                     信息: 未找到区域性 en-US 的指令清单。

                            信息: 结束程序集探测。

                   信息: 正在解析区域性 en 的参考。

                            信息: 正在应用绑定策略。

                                     信息: 未找到发布服务器策略。

                                     信息: 未找到绑定策略重定向。

                            信息: 开始程序集探测。

                                     信息: 未找到 WinSxS 中的程序集。

                                     信息: 尝试在C:\Windows\assembly\GAC_64\Microsoft.VC90.CRT.mui\9.0.30729.4967_en_1fc8b3b9a1e18e3b\Microsoft.VC90.CRT.mui.DLL上探测指令清单。

                                     信息: 未找到区域性 en 的指令清单。

                            信息: 结束程序集探测。

信息: 正在解析清单文件 C:\Windows\WinSxS\manifests\amd64_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.4967_none_08e58abba83c6451.manifest。

         信息: 指令清单定义标识是Microsoft.VC90.CRT,processorArchitecture="amd64",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="9.0.30729.4967"。

信息: 生成激活上下文成功。

结束生成激活上下文。

 

四、附:如何检查应用程序事件日志中的错误

  1. 打开事件查看器:单击“开始”,指向“所有程序”,再指向“管理工具”,然后单击“事件查看器”。
  2. 在事件查看器的控制台树中,单击“应用程序”。在详细信息窗格中,确保应用程序事件日志没有报告指出还原未成功的错误。
  3. 如果注意到指出错误的任何事件,请双击该事件打开“事件属性”,然后阅读事件描述。
  4. 尽可能及时地调查所出现的错误或不一致性,并予以解决。有关所出现错误的详细信息,请单击“描述”框中的 URL,或在 Microsoft 知识库 (http://go.microsoft.com/fwlink/?LinkId=18175) 中搜索相关文章。
  5. 检查错误后,关闭事件查看器。

 

五、总结

 

六、参考

1、http://technet.microsoft.com/zh-cn/library/aa997769

2、http://www.alarmchang.com/wiki/index.php?title=Sxstrace.exe

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章