利用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

 

 

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