Difference between revisions of "Documentation/Nightly/Extensions/DebuggingTools"

From Slicer Wiki
Jump to: navigation, search
(moved to github)
Tags: 2017 source edit, Replaced
 
(22 intermediate revisions by 2 users not shown)
Line 1: Line 1:
<noinclude>{{documentation/versioncheck}}</noinclude>
+
{{documentation/banner
<!-- ---------------------------- -->
+
| text  = [https://github.com/SlicerRt/SlicerDebuggingTools This page has been moved to Github.]
{{documentation/{{documentation/version}}/module-header}}
+
| background-color = 8FBC8F }}
<!-- ---------------------------- -->
 
{{documentation/{{documentation/version}}/module-section|Introduction and Acknowledgements}}
 
Author: Andras Lasso (PerkLab, Queen's University)<br>
 
Contact: Andras Lasso, <email>lasso@queensu.ca</email><br>
 
Project website: http://www.slicerrt.org<br>
 
License: [http://www.slicer.org/pages/LicenseText Slicer license]
 
{{documentation/{{documentation/version}}/module-introduction-logo-gallery
 
|{{collaborator|logo|sparkit}}|SparKit
 
|{{collaborator|logo|namic}}|NA-MIC
 
|{{collaborator|logo|perklab}}|PerkLab
 
|{{collaborator|logo|ocairo}}|OCAIRO
 
}}
 
 
 
<!-- ---------------------------- -->
 
{{documentation/{{documentation/version}}/extension-section|Extension Description}}
 
{|
 
[[Image:PyDevRemoteDebugExtension.png|left]]
 
|
 
Python Debugger is an extension of 3D Slicer to allow debugging of Python scripts in the Eclipse integrated development environment using PyDev.
 
 
 
Visual debugging (setting breakpoints, execute code step-by-step, view variables, stack, etc.) of Python scripted module is possible by using [http://pydev.org/ PyDev].
 
 
 
|
 
|}
 
 
 
<!-- ---------------------------- -->
 
{{documentation/{{documentation/version}}/extension-section|Modules}}
 
 
 
* Python debugger (in the module list: Developer Tools)
 
 
 
<!-- ---------------------------- -->
 
{{documentation/{{documentation/version}}/extension-section|Use Cases}}
 
 
 
<gallery widths="200px" perrow="4">
 
Image:PyDevRemoteDebugSlicer.png|Debugging Slicer in PyDev
 
</gallery>
 
 
 
<!-- ---------------------------- -->
 
{{documentation/{{documentation/version}}/extension-section|Tutorials}}
 
 
 
===Setup===
 
* Install PyDev: the simplest is to use the standalone [http://brainwy.github.io/liclipse/ LiClipse] package
 
* Run PyDev and enable the remote debugger tool (if you have trouble following these steps then you can find detailed instructions [http://pydev.org/manual_adv_remote_debugger.html here]):
 
** Enable PyDev server: in the menu Window > Customize perspective > Command groups availability > PyDev debug
 
** Open the debug window: in the menu Window > Open Perspective > Other > Debug => <span style="color: red">Without this step the ''Resume'' button will be disabled and debugging cannot be started!</span>
 
* In Slicer:
 
* Install the Python debugger extension
 
** Open the ''Python debugger'' module (in ''Developer Tools'' category)
 
** In the ''Settings'' section set the directory that contains the ''pydevd.py'' file. Usually it is in the Eclipse plugins directory /...pydev.../pysrc.
 
 
 
===Start debugging===
 
* In PyDev
 
** Start the server: on the toolbar click the button "PyDev: start the pydev server"
 
[[File:PyDevStartRemoteDebug.png]]
 
* In Slicer:
 
** Open the ''Python debugger'' module (in ''Developer Tools'' category)
 
** Click on ''Connect''
 
** If the debugger is successfully attached, then it will pause Slicer, so Slicer becomes unresponsive (until its execution is resumed in PyDev)
 
* In PyDev.
 
** Slicer execution is now paused. Resume Slicer execution by pressing the "Resume" button on the toolbar.
 
** Load your .py file into PyDev and add breakpoints (Ctrl+Shift+B) where you want your execution to stop for debugging.
 
** Important: you can open a terminal, where you can enter Python commands while the execution is paused (you have access to all Slicer variable, it has auto-complete, etc.) by clicking on "Open Console" (small button at the top of the console view) then chose "PyDev Console" and then "PyDev Debug Console" (after this the title of the console should be "PyDev Debug Console" instead of the default "Debug Server").
 
 
 
<!-- ---------------------------- -->
 
<!--
 
{{documentation/{{documentation/version}}/extension-section|Similar Extensions}}
 
-->
 
<!-- ---------------------------- -->
 
<!--
 
{{documentation/{{documentation/version}}/extension-section|References}}
 
-->
 
 
 
<!-- ---------------------------- -->
 
{{documentation/{{documentation/version}}/extension-section|Information for Developers}}
 
* Source code: https://subversion.assembla.com/svn/slicerrt/trunk/PyDevRemoteDebug
 
* Issue tracker:  [https://www.assembla.com/spaces/slicerrt/tickets open issues and enhancement requests]
 
 
 
<!-- ---------------------------- -->
 
<!--
 
{{documentation/{{documentation/version}}/extension-section|Troubleshooting}}
 
-->
 
<!-- ---------------------------- -->
 
 
 
<!-- ---------------------------- -->
 
{{documentation/{{documentation/version}}/extension-footer}}
 
<!-- ---------------------------- -->
 

Latest revision as of 03:38, 14 April 2021

Home < Documentation < Nightly < Extensions < DebuggingTools