1. 程式人生 > >在Visual Studio 2013中Debug Slicer Python指令碼

在Visual Studio 2013中Debug Slicer Python指令碼

1.安裝PTVS

開啟VS2013配置PTVS:
  • 工具->Python Tools->Python Environments。
  • 點選"+Custom"。
  • 在description處新增描述資訊,在Prefix path處選擇python-install目錄,例如:D:\S\D\python-install,點選Auto Detect。
  • 點選Apply,並保證新環境處於頂部。

2.安裝Remote Debug Server

為了除錯Slicer中的Python例項,需要安裝ptvsd,是PTVS的remote debugging server,在slicer.exe所在目錄下開啟命令列,例如:D:\S\D\Slicer-build,執行以下命令:
  • 安裝pip:slicer.exe --launch "D:\S\D\python-install\Scripts\easy_install.exe" pip。
  • 安裝ptvsd:slicer.exe --launch "D:\S\D\python-install\Scripts\pip.exe" install ptvsd。
ptvsd安裝在D:\S\D\python-install\lib\site-packages目錄下。

3. 配置Remote Debug Server

在Visual Studio中開啟需要除錯的Slicer scripted module,即相關的.py檔案,在其中加入以下程式碼:
import ptvsd
ptvsd.enable_attach(secret='slicer')
ptvsd.wait_for_attach()
儲存之後在Visual Studio中啟動Slicer進行除錯,當執行到該模組的.py檔案時,會啟動一個remote debugging server,名為slicer,此時在Visual Studio中進行以下操作:
  • 點選除錯->附加到程序。
  • 選擇Python remote (ptvsd)作為傳輸。
  • 輸入tcp://[email protected]作為限定符。
  • 點選重新整理,slicer的程序會出現在列表中,選擇該程序並點選Attach。
此時debugger attaches,可以在python程式碼中使用斷點,單步除錯程式碼,並檢視相關變數,在執行C++程式碼時可以自動切換到C++的debug模式下,但是仍無法在C++的呼叫堆疊中檢視python程式碼,只能在執行到python程式碼時設定斷點除錯。