有沒有辦法追蹤DLL和執行檔之間的函數呼叫

更新 Nov 22, 2022

產品資訊

軟體

  • LabWindows/CVI
  • LabVIEW

操作系統

  • Windows

問題敘述

  • 我有一個執行檔,可以對一個或多個dynamic link libraries(DLLs)進行函數呼叫。有沒有辦法確定我的執行檔會進行哪些呼叫?
  • 我有一個primary DLL,它可以呼叫secondary DLL。有沒有一種方法可以追蹤primary DLL對secondary DLL的呼叫?

解決方案

有一個叫做Dependency Walker的實用程式,它可以為上述兩種情況提供解決方案。它會掃描任何Windows中的模組程式(如.exe,.dll,.ocx,.sys等),並構建出所有相關模組程式間關係的樹狀圖,以及在每個模組中呼叫的函數。它會捕獲在執行時載入的所有dependency types。

Dependency Walker的最新版本是2.2版,可以從dependencywalker.com下載。此版本與Windows XP和Windows 7相容。

如果你使用的是Windows 10,你可以在下一個連結中找到名為Dependencies的工具的重製版本: [External]:Dependencies

從LabWindows / CVI 6.0開始,增加了Source Code Browser實用程式。它使您可以交叉引用專案中的每個函數和變數。