[IADP Series] 關於 Intel AppUp Software Debugger 的兩三事

今天修練開始,首發 Intel AppUp Developer Program 平台開發的第一篇文章,就先來談談掛在 Visual Studio 上的這個 AppUp Software Debugger 好了。

今天修練開始,首發 Intel AppUp Developer Program 平台開發的第一篇文章,就先來談談掛在 Visual Studio 上的這個 AppUp Software Debugger 好了。

Intel AppUp Software Debugger 是一個內嵌於 Visual Studio 的 Plug-in 的工具之一,它的主要目的是在模擬一個 Intel AppUp Center 的服務環境,以支援 SDK Library 中各個函式庫的工作,這個工具其實是一個本地版本的 WCF Service,為什麼知道?因為畢竟 SDK Library 本身還是一個 .NET 組件,用一個眾所皆知的小工具去看,就能看到它內部有一個 http://127.0.0.1:{0}/DispatcherProxy 的 URL 字串 (在哪我就不說了),而且它本身也參考了 WCF 的 System.ServiceModel.dll 組件,故可以推測 SDK Library 組件本身擁有 WCF Client 的能力,而在 Software Debugger 啟動時的訊息,則可以推斷它是一個 WCF Service。

image

 

這個工具會在下列條件下啟動:

  • 按 F5 啟動 Visual Studio Debugger 時。
  • 在 Visual Studio Plug-in 工具列中,按 Start Intel AppUp Software Debugger 按鈕。

在它啟動後,它會開始聆聽來自 SDK Library 的呼叫,而在 SDK 文件中的 AdpApplication.BeginEvent() 和 AdpApplication.EndEvent() 則是設定是否要將 SDK 的事件往後拋給 Software Debugger (若是正式環境則是拋到 Intel AppUp Center),所以我們如果有在程式中使用 AdpApplication.BeginEvent() (或是在 AdpApplication 建構式中的第二個參數傳入 true),就可以在除錯畫面中看到有訊息出現。但不論是否有開啟,授權 (authorize) 動作的訊息都會出現,並且提示授權是否成功。而在程式中如果有設定 Crash Report (SDK 內建有一個預設的 DefaultCrashReport),則當程式發生錯誤時,就會自動把 Crash Report 拋回 Software Debugger 的 WCF 服務,當然,如果是正式環境,就會拋到 Intel AppUp Center。

image

 

也因為它是負責處理 SDK Library 中的訊息,所以不論你是使用除錯器啟動,還是用手動啟動,它都必須要存在且保持聆聽,否則一旦 SDK Libary 無法連上時,會擲回一個 InitializationException 的例外,而在正式環境運作時,若無法連線到 Intel AppUp Center 時,也會擲出這個例外,這也代表說在啟動的時候,電腦一定要連上網路 ...。

還有一件事情要提示的,就是如果在程式執行期間把 Software Debugger 停掉的話,程式的運作會變得不正常,這點也需要注意一下。

Reference:

Intel AppUp Software Development Kit, Developer Guide