LabVIEW Pro 專業論壇-技術討論區-透過Desktop Execution Trace Toolkit來對中大型專案除錯
 
     
 
 
 
LabVIEW 討論區基礎教學每月專題分享技術問題精選online Test
技術討論區 程式分享區 教育訓練與認證區 閒話家常區 工作機會討論區 回報區 ✦LabVIEW NXG 特區✦ 高手專訪系列
 熱門關鍵字 
    TOP 資源排行榜    量測概念充電站    CLD 考前衝刺    取得 NI 協助    3小時內學會 LabVIEW
 您的位置:首頁 > 技術討論區 > 透過Desktop Execution Trace Toolkit來對中大型專案除錯
  技術討論區   板主:meiae
 之1(7篇)
透過Desktop Execution Trace Toolkit來對中大型專案除錯 
 
caeru
暱稱:星羽
經驗值:7260
等級:總舵主
發文:26
回文:699
版本:LabVIEW 2017
闖關狀態:
英雄殿
前往地圖:
 
字級設定

本文同步發表於LabVIEW筆記

-

許多業界朋友詢問我平時如何針對中大型的系統行專案除錯,

目的不外乎:

 

  • 想要追蹤執行緒
  • 想要捕捉event
  • 想要確認VI被呼叫的狀況
  • 想要了解reference使用及釋放狀況
  • 想要檢查錯誤事件
  • 想要追蹤巨量記憶體使用VI的狀況
  • 想要自定義事件並且透過相同介面來顯示
我通常都會建議使用Desktop Execution Trace Toolkit。
 
開啟Desktop Execution Trace Toolkit後,會發現它的介面十分的簡潔

 
Desktop Execution Trace Toolkit是用來做事件追蹤使用,沒有太多的設定項目給使用者。使用者只須要選擇Application Instance到你的專案,並且按下右邊的Start之後,Desktop Execution Trace Toolkit就會就會自行監控你的程式。
 
如果啟動失敗,或是沒有進行監控,多半是防火牆把3363這個port擋掉,建議可以把Desktop Execution Trace Toolkit加入防火牆的軟體白名單。
 
開始追蹤後,Desktop Execution Trace Toolkit就會開始更新

 
可看到主程式啟動後開始刷新List,後頭帶著每個事件的類別,如VI啟動,VI被呼叫等等。
 
如果作業過程,有些reference沒有關閉就離開VI,那麼Desktop Execution Trace Toolkit會看到reference leak的事件

 
同樣的,如果軟體正在操作的reference是無效的reference,例如操作一個已經被關閉的queue reference導致產生錯誤而輸出到Error out,那麼在Desktop Execution Trace Toolkit則會顯示Error的事件

 
至於記憶體的使用及釋放,也可以透過Desktop Execution Trace Toolkit來看到,包含Memory Allocate, Resize, Free的功能。

 

 
 
此外如果有需要在特定的程式碼中加入自定義追蹤條件來讓Desktop Execution Trace Toolkit捕捉,那麼只需要透過以下的API
 

 
這是Desktop Execution Trace Toolkit提供唯一的API給使用者呼叫,可以自訂義要顯示甚麼文字在Desktop Execution Trace Toolkit上,當程式執行到這個API時,便會在Desktop Execution Trace Toolkit看到其捕捉的資訊

 
使用者或許會覺得有許多項目不想看到,只想看到特定的事件,甚至只顯示特定的VI的事件,Desktop Execution Trace Toolkit的Capture Settings可以讓使用者自行選擇顯示的項目

 

 
選擇完畢後就可以顯示相關的設定,例如把event納入顯示

 
基本上介面非常簡單,使用上我想應該也不會有太大的問題,希望提供給有需要的人了解並應用!
 
 

 

  文章人氣: 1212 讚:7 文章日期:2018/09/20 10:45
kzkobe87

暱稱:KZ
經驗值:1373
等級:堂主
發文:0
回文:97
版本:LabVIEW 2010
闖關狀態:
英雄殿
前往地圖:
1樓
字級設定

感謝分享,對我在業界非常有幫助

    讚:0 文章日期:2018/09/27 08:37
ancle


創始會員 2013 LabVIEW 至尊爭霸賽參賽者   
暱稱:ancle
經驗值:9721
等級:總舵主
發文:99
回文:3284
版本:請選擇
闖關狀態:
迷霧之森
前往地圖:
2樓
字級設定

我想請問一下DETT在執行的時候,更新的速度有點快,雖然可以存檔,但是資訊不好分析,如果我要針對哪些VI使用的記憶體情況該如何設定?謝謝!

    讚:0 文章日期:2018/09/30 11:35
caeru

暱稱:星羽
經驗值:7260
等級:總舵主
發文:26
回文:699
版本:LabVIEW 2017
闖關狀態:
英雄殿
前往地圖:
3樓
字級設定

首先,需要在capture setting中選擇自己需要的項目,以記憶體的狀況而言可以像下圖這樣設定

[+]放大圖片
 

 

接著開始監控並且執行程式,會看到很恐怖的狀況

[+]放大圖片
 

 

因此需要切換到View的Filter Setting中,把你想看的東西留下,例如下圖的設定

[+]放大圖片
 

 

最後就可以看到篩選後的結果

[+]放大圖片
 

 

 

    讚:0 文章日期:2018/09/30 12:06
ancle


創始會員 2013 LabVIEW 至尊爭霸賽參賽者   
暱稱:ancle
經驗值:9721
等級:總舵主
發文:99
回文:3284
版本:請選擇
闖關狀態:
迷霧之森
前往地圖:
4樓
字級設定

我印象中vi沒有辦法像工作管理員一樣可以看到記憶體使用多少?對嗎?

[+]放大圖片
 

    讚:0 文章日期:2018/09/30 12:31
caeru

暱稱:星羽
經驗值:7260
等級:總舵主
發文:26
回文:699
版本:LabVIEW 2017
闖關狀態:
英雄殿
前往地圖:
5樓
字級設定
右邊description後面有寫size,單位應該是KB
    讚:0 文章日期:2018/09/30 12:47
ancle


創始會員 2013 LabVIEW 至尊爭霸賽參賽者   
暱稱:ancle
經驗值:9721
等級:總舵主
發文:99
回文:3284
版本:請選擇
闖關狀態:
迷霧之森
前往地圖:
6樓
字級設定

引言自 caeru:
右邊description後面有寫size,單位應該是KB

另外,問一下,你有使用DETT來看執行檔嗎?我試過沒辨法,不知道是不是我方法錯誤

    讚:0 文章日期:2018/10/09 16:37
caeru

暱稱:星羽
經驗值:7260
等級:總舵主
發文:26
回文:699
版本:LabVIEW 2017
闖關狀態:
英雄殿
前往地圖:
7樓
字級設定

Application需要開VI server debug port才能讓DETT連進去,細節可以參考這個頁面:

https://knowledge.ni.com/KnowledgeArticleDetails?id=kA00Z000000P9vgSAC

 

引言自 ancle:


引言自 caeru:
右邊description後面有寫size,單位應該是KB

另外,問一下,你有使用DETT來看執行檔嗎?我試過沒辨法,不知道是不是我方法錯誤

    讚:0 文章日期:2018/10/09 17:18
 之1(7篇)
 
 
   會員中心 
帳號:
     
密碼:
     
  以後自動登入
 
註冊
   待回覆文章 
1. 使用ULN-2803 驅動高壓幫浦
2. 如何讓元件輸入任何數之後,control 元件中顯示空白?
 
   Top 5 熱門討論 
1. 如何將矩陣內的指定值取出並累計出現次數?
2. 矩陣中數值極限為何?
3. 使用ULN-2803 驅動高壓幫浦
4. 如何讓元件輸入任何數之後,control 元件中顯示空白?
 
 
 
LabVIEW討論區 站長信箱 關於我們 站內聲明
國家儀器股份有限公司贊助;Sponsored by NI.
© 2010 National Instruments, Taiwan. All rights reserved. design by begonia