Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes14kdownloads
debugger.doctree182 linesDownload Raw Back to .doctrees
1����sphinx.addnodes��document���)��}�(�	rawsource����children�]�(�docutils.nodes��target���)��}�(h�
.. _debugger:�h]��2attributes�}�(�ids�]��classes�]��names�]��dupnames�]��backrefs�]��refid��debugger�u�tagname�h3�line�K�parent�h�	_document�h�source��cD:\a\pgadmin-packaging-foundation\pgadmin-packaging-foundation\pgadmin4-8.6\docs\en_US\debugger.rst�ubh	�section���)��}�(hhh]�(h	�title���)��}�(h�`Debugger`:index:�h]�(h�index���)��}�(hhh]�h}�(h]�h]�h]�h]�h]��entries�]�(�single��Debugger��index-0�hNt�auhh/h"h#hKh h+ubh)��}�(hhh]�h}�(h]�h>ah]�h]�h]�h]�uhh4h h+ubh	�Text����Debugger�����}�(h h+h!hh"NhNubeh}�(h]�h]�h]�h]�h]�uhh)h h&h!hh"h#hKubh	�image���)��}�(h�L.. image:: images/debug_main.png5    :alt: Debugger page6    :align: center7�h]�h}�(h]�h]�h]�h]�h]��alt��
Debugger page��align��center��uri��images/debug_main.png��8candidates�}��*�hfsuhhUh"h#hKh h&h!hubh	�	paragraph���)��}�(hXUThe debugger may be used to debug PL/pgSQL functions in PostgreSQL, as well as9EDB-SPL functions, stored procedures and packages in EDB Postgres Advanced10Server. The Debugger is available as an extension for your PostgreSQL11installation, and is distributed as part of Advanced Server.  You must have12superuser privileges to use the debugger.�h]�hJXUThe debugger may be used to debug PL/pgSQL functions in PostgreSQL, as well as13EDB-SPL functions, stored procedures and packages in EDB Postgres Advanced14Server. The Debugger is available as an extension for your PostgreSQL15installation, and is distributed as part of Advanced Server.  You must have16superuser privileges to use the debugger.�����}�(h hlh!hh"NhNubah}�(h]�h]�h]�h]�h]�uhhjh"h#hKh h&h!hubhk)��}�(h��Before using the debugger, you must modify the *postgresql.conf* file, adding17the server-side debugger components to the value of the18*shared_preload_libraries* parameter, for example:�h]�(hJ�/Before using the debugger, you must modify the �����}�(h hzh!hh"NhNubh	�emphasis���)��}�(h�*postgresql.conf*�h]�hJ�postgresql.conf�����}�(h h�h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhh�h hzubhJ�F file, adding19the server-side debugger components to the value of the20�����}�(h hzh!hh"NhNubh�)��}�(h�*shared_preload_libraries*�h]�hJ�shared_preload_libraries�����}�(h h�h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhh�h hzubhJ� parameter, for example:�����}�(h hzh!hh"NhNubeh}�(h]�h]�h]�h]�h]�uhhjh"h#hKh h&h!hubh	�block_quote���)��}�(h�5shared_preload_libraries = '$libdir/plugin_debugger'21�h]�hk)��}�(h�4shared_preload_libraries = '$libdir/plugin_debugger'�h]�hJ�8shared_preload_libraries = ‘$libdir/plugin_debugger’�����}�(h h�h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhhjh"h#hKh h�ubah}�(h]�h]�h]�h]�h]�uhh�h"h#hKh h&h!hubhk)��}�(h�bAfter modifying the *shared_preload_libraries* parameter, restart the server to22apply the changes.�h]�(hJ�After modifying the �����}�(h h�h!hh"NhNubh�)��}�(h�*shared_preload_libraries*�h]�hJ�shared_preload_libraries�����}�(h h�h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhh�h h�ubhJ�4 parameter, restart the server to23apply the changes.�����}�(h h�h!hh"NhNubeh}�(h]�h]�h]�h]�h]�uhhjh"h#hKh h&h!hubhk)��}�(hX�The debugger may be used for either in-context debugging or direct debugging of24a target function or procedure.  When you use the debugger for in-context25debugging, you set a breakpoint at the first line of a program; when a session26invokes the target, control is transferred to the debugger. When using direct27debugging, the debugger prompts you for any parameters required by the target,28and then allows you to step through the code.�h]�hJX�The debugger may be used for either in-context debugging or direct debugging of29a target function or procedure.  When you use the debugger for in-context30debugging, you set a breakpoint at the first line of a program; when a session31invokes the target, control is transferred to the debugger. When using direct32debugging, the debugger prompts you for any parameters required by the target,33and then allows you to step through the code.�����}�(h h�h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhhjh"h#hKh h&h!hubh%)��}�(hhh]�(h*)��}�(h�In-context Debugging�h]�hJ�In-context Debugging�����}�(h h�h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhh)h h�h!hh"h#hK"ubhk)��}�(h��To set a breakpoint at the first line of a program, right-click the name of the34object you would like to debug, and select *Set breakpoint* from the *Debugging*35sub-menu.  The debugger window will open, waiting for another session to invoke36the program.�h]�(hJ�{To set a breakpoint at the first line of a program, right-click the name of the37object you would like to debug, and select �����}�(h jh!hh"NhNubh�)��}�(h�*Set breakpoint*�h]�hJ�Set breakpoint�����}�(h jh!hh"NhNubah}�(h]�h]�h]�h]�h]�uhh�h jubhJ�38 from the �����}�(h jh!hh"NhNubh�)��}�(h�*Debugging*�h]�hJ�	Debugging�����}�(h j!h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhh�h jubhJ�]39sub-menu.  The debugger window will open, waiting for another session to invoke40the program.�����}�(h jh!hh"NhNubeh}�(h]�h]�h]�h]�h]�uhhjh"h#hK$h h�h!hubhV)��}�(h�g.. image:: images/debug_set_breakpoint.png41    :alt: Debugger set a breakpoint demo42    :align: center43�h]�h}�(h]�h]�h]�h]�h]��alt��Debugger set a breakpoint demo��align��center��uri��images/debug_set_breakpoint.png�hg}�hijHsuhhUh"h#hK)h h�h!hubhk)��}�(h��When another session invokes the target, the debugger will display the code,44allowing you to add break points, or step through line-by-line. The other45session is suspended until the debugging completes; then control is returned46to the session.�h]�hJ��When another session invokes the target, the debugger will display the code,47allowing you to add break points, or step through line-by-line. The other48session is suspended until the debugging completes; then control is returned49to the session.�����}�(h jJh!hh"NhNubah}�(h]�h]�h]�h]�h]�uhhjh"h#hK-h h�h!hubhV)��}�(h�Z.. image:: images/debug_ic_step_in.png50    :alt: Debugger step-in demo51    :align: center52�h]�h}�(h]�h]�h]�h]�h]��alt��Debugger step-in demo��align��center��uri��images/debug_ic_step_in.png�hg}�hijgsuhhUh"h#hK2h h�h!hubeh}�(h]��in-context-debugging�ah]�h]��in-context debugging�ah]�h]�uhh$h h&h!hh"h#hK"ubh%)��}�(hhh]�(h*)��}�(h�Direct Debugging�h]�hJ�Direct Debugging�����}�(h jth!hh"NhNubah}�(h]�h]�h]�h]�h]�uhh)h jqh!hh"h#hK7ubhk)��}�(hX53To use the debugger for direct debugging, right click on the name of the object54that you wish to debug in the pgAdmin tree control and select *Debug* from the55*Debugging* sub-menu.  The debugger window will open, prompting you for any56values required by the program:�h]�(hJ��To use the debugger for direct debugging, right click on the name of the object57that you wish to debug in the pgAdmin tree control and select �����}�(h j�h!hh"NhNubh�)��}�(h�*Debug*�h]�hJ�Debug�����}�(h j�h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhh�h j�ubhJ�58 from the59�����}�(h j�h!hh"NhNubh�)��}�(h�*Debugging*�h]�hJ�	Debugging�����}�(h j�h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhh�h j�ubhJ�` sub-menu.  The debugger window will open, prompting you for any60values required by the program:�����}�(h j�h!hh"NhNubeh}�(h]�h]�h]�h]�h]�uhhjh"h#hK9h jqh!hubhV)��}�(h�G.. image:: images/debug_params.png61    :alt: Debugger parameter dialog62�h]�h}�(h]�h]�h]�h]�h]��alt��Debugger parameter dialog��uri��images/debug_params.png�hg}�hij�suhhUh"h#hK>h jqh!hubhk)��}�(h�NUse the fields on the *Debugger* dialog to provide a value for each parameter:�h]�(hJ�Use the fields on the �����}�(h j�h!hh"NhNubh�)��}�(h�63*Debugger*�h]�hJ�Debugger�����}�(h j�h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhh�h j�ubhJ�. dialog to provide a value for each parameter:�����}�(h j�h!hh"NhNubeh}�(h]�h]�h]�h]�h]�uhhjh"h#hKAh jqh!hubh�)��}�(hX�* The *Name* field contains the formal parameter name.64* The *Type* field contains the parameter data type.65* Check the *Null?* checkbox to indicate that the parameter is a NULL value.66* Check the *Expression?* checkbox if the Value field contains an expression.67* Use the *Value* field to provide the parameter value that will be passed to68  the program.  When entering parameter values, type the value into the69  appropriate cell on the grid, or, leave the cell empty to represent NULL,70  enter '' (two single quotes) to represent an empty string, or to enter a71  literal string consisting of just two single quotes, enter \'\'. PostgreSQL72  8.4 and above supports variadic function parameters. These may be entered as73  a comma-delimited list of values, quoted and/or cast as required.74* Check the *Use default?* checkbox to indicate that the program should use75  the value in the Default Value field.76* The *Default Value* field contains the default value of the parameter.77�h]�h	�bullet_list���)��}�(hhh]�(h	�	list_item���)��}�(h�4The *Name* field contains the formal parameter name.�h]�hk)��}�(hj�h]�(hJ�The �����}�(h j�h!hh"NhNubh�)��}�(h�*Name*�h]�hJ�Name�����}�(h j�h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhh�h j�ubhJ�* field contains the formal parameter name.�����}�(h j�h!hh"NhNubeh}�(h]�h]�h]�h]�h]�uhhjh"h#hKCh j�ubah}�(h]�h]�h]�h]�h]�uhj�h"h#hKCh j�ubj�)��}�(h�2The *Type* field contains the parameter data type.�h]�hk)��}�(hjh]�(hJ�The �����}�(h jh!hh"NhNubh�)��}�(h�*Type*�h]�hJ�Type�����}�(h j"h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhh�h jubhJ�( field contains the parameter data type.�����}�(h jh!hh"NhNubeh}�(h]�h]�h]�h]�h]�uhhjh"h#hKDh jubah}�(h]�h]�h]�h]�h]�uhj�h"h#hKDh j�ubj�)��}�(h�JCheck the *Null?* checkbox to indicate that the parameter is a NULL value.�h]�hk)��}�(hjBh]�(hJ�78Check the �����}�(h jDh!hh"NhNubh�)��}�(h�*Null?*�h]�hJ�Null?�����}�(h jKh!hh"NhNubah}�(h]�h]�h]�h]�h]�uhh�h jDubhJ�9 checkbox to indicate that the parameter is a NULL value.�����}�(h jDh!hh"NhNubeh}�(h]�h]�h]�h]�h]�uhhjh"h#hKEh j@ubah}�(h]�h]�h]�h]�h]�uhj�h"h#hKEh j�ubj�)��}�(h�KCheck the *Expression?* checkbox if the Value field contains an expression.�h]�hk)��}�(hjkh]�(hJ�79Check the �����}�(h jmh!hh"NhNubh�)��}�(h�
*Expression?*�h]�hJ�Expression?�����}�(h jth!hh"NhNubah}�(h]�h]�h]�h]�h]�uhh�h jmubhJ�4 checkbox if the Value field contains an expression.�����}�(h jmh!hh"NhNubeh}�(h]�h]�h]�h]�h]�uhhjh"h#hKFh jiubah}�(h]�h]�h]�h]�h]�uhj�h"h#hKFh j�ubj�)��}�(hX�Use the *Value* field to provide the parameter value that will be passed to80the program.  When entering parameter values, type the value into the81appropriate cell on the grid, or, leave the cell empty to represent NULL,82enter '' (two single quotes) to represent an empty string, or to enter a83literal string consisting of just two single quotes, enter \'\'. PostgreSQL848.4 and above supports variadic function parameters. These may be entered as85a comma-delimited list of values, quoted and/or cast as required.�h]�hk)��}�(hX�Use the *Value* field to provide the parameter value that will be passed to86the program.  When entering parameter values, type the value into the87appropriate cell on the grid, or, leave the cell empty to represent NULL,88enter '' (two single quotes) to represent an empty string, or to enter a89literal string consisting of just two single quotes, enter \'\'. PostgreSQL908.4 and above supports variadic function parameters. These may be entered as91a comma-delimited list of values, quoted and/or cast as required.�h]�(hJ�Use the �����}�(h j�h!hh"NhNubh�)��}�(h�*Value*�h]�hJ�Value�����}�(h j�h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhh�h j�ubhJX� field to provide the parameter value that will be passed to92the program.  When entering parameter values, type the value into the93appropriate cell on the grid, or, leave the cell empty to represent NULL,94enter ‘’ (two single quotes) to represent an empty string, or to enter a95literal string consisting of just two single quotes, enter ''. PostgreSQL968.4 and above supports variadic function parameters. These may be entered as97a comma-delimited list of values, quoted and/or cast as required.�����}�(h j�h!hh"NhNubeh}�(h]�h]�h]�h]�h]�uhhjh"h#hKGh j�ubah}�(h]�h]�h]�h]�h]�uhj�h"h#hKGh j�ubj�)��}�(h�oCheck the *Use default?* checkbox to indicate that the program should use98the value in the Default Value field.�h]�hk)��}�(h�oCheck the *Use default?* checkbox to indicate that the program should use99the value in the Default Value field.�h]�(hJ�100Check the �����}�(h j�h!hh"NhNubh�)��}�(h�*Use default?*�h]�hJ�Use default?�����}�(h j�h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhh�h j�ubhJ�W checkbox to indicate that the program should use101the value in the Default Value field.�����}�(h j�h!hh"NhNubeh}�(h]�h]�h]�h]�h]�uhhjh"h#hKNh j�ubah}�(h]�h]�h]�h]�h]�uhj�h"h#hKNh j�ubj�)��}�(h�GThe *Default Value* field contains the default value of the parameter.102�h]�hk)��}�(h�FThe *Default Value* field contains the default value of the parameter.�h]�(hJ�The �����}�(h j�h!hh"NhNubh�)��}�(h�*Default Value*�h]�hJ�
Default Value�����}�(h j�h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhh�h j�ubhJ�3 field contains the default value of the parameter.�����}�(h j�h!hh"NhNubeh}�(h]�h]�h]�h]�h]�uhhjh"h#hKPh j�ubah}�(h]�h]�h]�h]�h]�uhj�h"h#hKPh j�ubeh}�(h]�h]�h]�h]�h]��bullet�hiuhj�h"h#hKCh j�ubah}�(h]�h]�h]�h]�h]�uhh�h"h#hKCh jqh!hubhk)��}�(hXProvide values required by the program, and click the *Debug* button to start103stepping through the program.104The values of the arguments provided here are saved. The values will be pre-filled105next time the dialog opens. To clear the values, use the *Clear All* button.�h]�(hJ�6Provide values required by the program, and click the �����}�(h jh!hh"NhNubh�)��}�(h�*Debug*�h]�hJ�Debug�����}�(h j%h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhh�h jubhJ�� button to start106stepping through the program.107The values of the arguments provided here are saved. The values will be pre-filled108next time the dialog opens. To clear the values, use the �����}�(h jh!hh"NhNubh�)��}�(h�*Clear All*�h]�hJ�	Clear All�����}�(h j7h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhh�h jubhJ� button.�����}�(h jh!hh"NhNubeh}�(h]�h]�h]�h]�h]�uhhjh"h#hKRh jqh!hubhV)��}�(h�W.. image:: images/debug_step_in.png109    :alt: Debugger step-in demo110    :align: center111�h]�h}�(h]�h]�h]�h]�h]��alt��Debugger step-in demo��align��center��uri��images/debug_step_in.png�hg}�hij^suhhUh"h#hKWh jqh!hubeh}�(h]��direct-debugging�ah]�h]��direct debugging�ah]�h]�uhh$h h&h!hh"h#hK7ubh%)��}�(hhh]�(h*)��}�(h�Using the Debugger�h]�hJ�Using the Debugger�����}�(h jkh!hh"NhNubah}�(h]�h]�h]�h]�h]�uhh)h jhh!hh"h#hK\ubhk)��}�(hXThe main debugger window consists of two panels and a context-sensitive toolbar.112Use toolbar icons to manage breakpoints and step into or through code; hover113over an icon for a tooltip that identifies the option associated with the icon.114The toolbar options are:�h]�hJXThe main debugger window consists of two panels and a context-sensitive toolbar.115Use toolbar icons to manage breakpoints and step into or through code; hover116over an icon for a tooltip that identifies the option associated with the icon.117The toolbar options are:�����}�(h jyh!hh"NhNubah}�(h]�h]�h]�h]�h]�uhhjh"h#hK^h jhh!hubhV)��}�(h�].. image:: images/debug_toolbar.png118    :alt: Debugger navigation toolbar119    :align: center120�h]�h}�(h]�h]�h]�h]�h]��alt��Debugger navigation toolbar��align��center��uri��images/debug_toolbar.png�hg}�hij�suhhUh"h#hKch jhh!hubh	�table���)��}�(hhh]�h	�tgroup���)��}�(hhh]�(h	�colspec���)��}�(hhh]�h}�(h]�h]�h]�h]�h]��colwidth�Kuhj�h j�ubj�)��}�(hhh]�h}�(h]�h]�h]�h]�h]��colwidth�Kkuhj�h j�ubh	�thead���)��}�(hhh]�h	�row���)��}�(hhh]�(h	�entry���)��}�(hhh]�hk)��}�(h�Option�h]�hJ�Option�����}�(h j�h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhhjh"h#hKhh j�ubah}�(h]�h]�h]�h]�h]�uhj�h j�ubj�)��}�(hhh]�hk)��}�(h�Action�h]�hJ�Action�����}�(h j�h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhhjh"h#hKhh j�ubah}�(h]�h]�h]�h]�h]�uhj�h j�ubeh}�(h]�h]�h]�h]�h]�uhj�h j�ubah}�(h]�h]�h]�h]�h]�uhj�h j�ubh	�tbody���)��}�(hhh]�(j�)��}�(hhh]�(j�)��}�(hhh]�hk)��}�(h�*Step into*�h]�h�)��}�(hjh]�hJ�	Step into�����}�(h j
h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhh�h j	ubah}�(h]�h]�h]�h]�h]�uhhjh"h#hKjh jubah}�(h]�h]�h]�h]�h]�uhj�h jubj�)��}�(hhh]�hk)��}�(h�MClick the *Step into* icon to execute the currently highlighted line of code.�h]�(hJ�121Click the �����}�(h j)h!hh"NhNubh�)��}�(h�*Step into*�h]�hJ�	Step into�����}�(h j1h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhh�h j)ubhJ�8 icon to execute the currently highlighted line of code.�����}�(h j)h!hh"NhNubeh}�(h]�h]�h]�h]�h]�uhhjh"h#hKjh j&ubah}�(h]�h]�h]�h]�h]�uhj�h jubeh}�(h]�h]�h]�h]�h]�uhj�h jubj�)��}�(hhh]�(j�)��}�(hhh]�hk)��}�(h�*Step over*�h]�h�)��}�(hj]h]�hJ�	Step over�����}�(h j_h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhh�h j[ubah}�(h]�h]�h]�h]�h]�uhhjh"h#hKlh jXubah}�(h]�h]�h]�h]�h]�uhj�h jUubj�)��}�(hhh]�hk)��}�(h��Click the *Step over* icon to execute a line of code, stepping over any sub-functions invoked by the code.122The sub-function executes, but is not debugged unless it contains a breakpoint.�h]�(hJ�123Click the �����}�(h j{h!hh"NhNubh�)��}�(h�*Step over*�h]�hJ�	Step over�����}�(h j�h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhh�h j{ubhJ�� icon to execute a line of code, stepping over any sub-functions invoked by the code.124The sub-function executes, but is not debugged unless it contains a breakpoint.�����}�(h j{h!hh"NhNubeh}�(h]�h]�h]�h]�h]�uhhjh"h#hKlh jxubah}�(h]�h]�h]�h]�h]�uhj�h jUubeh}�(h]�h]�h]�h]�h]�uhj�h jubj�)��}�(hhh]�(j�)��}�(hhh]�hk)��}�(h�*Continue/Start*�h]�h�)��}�(hj�h]�hJ�Continue/Start�����}�(h j�h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhh�h j�ubah}�(h]�h]�h]�h]�h]�uhhjh"h#hKoh j�ubah}�(h]�h]�h]�h]�h]�uhj�h j�ubj�)��}�(hhh]�hk)��}�(h��Click the *Continue/Start* icon to execute the highlighted code, and continue until the program125encounters a breakpoint or completes.�h]�(hJ�126Click the �����}�(h j�h!hh"NhNubh�)��}�(h�*Continue/Start*�h]�hJ�Continue/Start�����}�(h j�h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhh�h j�ubhJ�k icon to execute the highlighted code, and continue until the program127encounters a breakpoint or completes.�����}�(h j�h!hh"NhNubeh}�(h]�h]�h]�h]�h]�uhhjh"h#hKoh j�ubah}�(h]�h]�h]�h]�h]�uhj�h j�ubeh}�(h]�h]�h]�h]�h]�uhj�h jubj�)��}�(hhh]�(j�)��}�(hhh]�hk)��}�(h�*Toggle breakpoint*�h]�h�)��}�(hjh]�hJ�Toggle breakpoint�����}�(h jh!hh"NhNubah}�(h]�h]�h]�h]�h]�uhh�h j�ubah}�(h]�h]�h]�h]�h]�uhhjh"h#hKrh j�ubah}�(h]�h]�h]�h]�h]�uhj�h j�ubj�)��}�(hhh]�hk)��}�(h�eUse the *Toggle breakpoint* icon to enable or disable a breakpoint (without removing the breakpoint).�h]�(hJ�Use the �����}�(h jh!hh"NhNubh�)��}�(h�*Toggle breakpoint*�h]�hJ�Toggle breakpoint�����}�(h j'h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhh�h jubhJ�J icon to enable or disable a breakpoint (without removing the breakpoint).�����}�(h jh!hh"NhNubeh}�(h]�h]�h]�h]�h]�uhhjh"h#hKrh jubah}�(h]�h]�h]�h]�h]�uhj�h j�ubeh}�(h]�h]�h]�h]�h]�uhj�h jubj�)��}�(hhh]�(j�)��}�(hhh]�hk)��}�(h�*Clear all breakpoints*�h]�h�)��}�(hjSh]�hJ�Clear all breakpoints�����}�(h jUh!hh"NhNubah}�(h]�h]�h]�h]�h]�uhh�h jQubah}�(h]�h]�h]�h]�h]�uhhjh"h#hKth jNubah}�(h]�h]�h]�h]�h]�uhj�h jKubj�)��}�(hhh]�hk)��}�(h�RClick the *Clear all breakpoints* icon to remove all breakpoints from the program.�h]�(hJ�128Click the �����}�(h jqh!hh"NhNubh�)��}�(h�*Clear all breakpoints*�h]�hJ�Clear all breakpoints�����}�(h jyh!hh"NhNubah}�(h]�h]�h]�h]�h]�uhh�h jqubhJ�1 icon to remove all breakpoints from the program.�����}�(h jqh!hh"NhNubeh}�(h]�h]�h]�h]�h]�uhhjh"h#hKth jnubah}�(h]�h]�h]�h]�h]�uhj�h jKubeh}�(h]�h]�h]�h]�h]�uhj�h jubj�)��}�(hhh]�(j�)��}�(hhh]�hk)��}�(h�*Stop*�h]�h�)��}�(hj�h]�hJ�Stop�����}�(h j�h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhh�h j�ubah}�(h]�h]�h]�h]�h]�uhhjh"h#hKvh j�ubah}�(h]�h]�h]�h]�h]�uhj�h j�ubj�)��}�(hhh]�hk)��}�(h�9Click the *Stop* icon to halt the execution of a program.�h]�(hJ�129Click the �����}�(h j�h!hh"NhNubh�)��}�(h�*Stop*�h]�hJ�Stop�����}�(h j�h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhh�h j�ubhJ�) icon to halt the execution of a program.�����}�(h j�h!hh"NhNubeh}�(h]�h]�h]�h]�h]�uhhjh"h#hKvh j�ubah}�(h]�h]�h]�h]�h]�uhj�h j�ubeh}�(h]�h]�h]�h]�h]�uhj�h jubj�)��}�(hhh]�(j�)��}�(hhh]�hk)��}�(h�*Help*�h]�h�)��}�(hj�h]�hJ�Help�����}�(h j�h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhh�h j�ubah}�(h]�h]�h]�h]�h]�uhhjh"h#hKxh j�ubah}�(h]�h]�h]�h]�h]�uhj�h j�ubj�)��}�(hhh]�hk)��}�(h�5Click the *Help* icon to open debugger documentation.�h]�(hJ�130Click the �����}�(h jh!hh"NhNubh�)��}�(h�*Help*�h]�hJ�Help�����}�(h jh!hh"NhNubah}�(h]�h]�h]�h]�h]�uhh�h jubhJ�% icon to open debugger documentation.�����}�(h jh!hh"NhNubeh}�(h]�h]�h]�h]�h]�uhhjh"h#hKxh jubah}�(h]�h]�h]�h]�h]�uhj�h j�ubeh}�(h]�h]�h]�h]�h]�uhj�h jubeh}�(h]�h]�h]�h]�h]�uhj�h j�ubeh}�(h]�h]�h]�h]�h]��cols�Kuhj�h j�ubah}�(h]�h]�h]�h]�h]�uhj�h jhh!hh"h#hNubhk)��}�(h��The top panel of the debugger window displays the program body; click in the131grey margin next to a line number to add a breakpoint.  The highlighted line in132the top panel is the line that is about to execute.�h]�hJ��The top panel of the debugger window displays the program body; click in the133grey margin next to a line number to add a breakpoint.  The highlighted line in134the top panel is the line that is about to execute.�����}�(h jTh!hh"NhNubah}�(h]�h]�h]�h]�h]�uhhjh"h#hK{h jhh!hubhV)��}�(h�S.. image:: images/debug_main.png135    :alt: Debugger main window136    :align: center137�h]�h}�(h]�h]�h]�h]�h]��alt��Debugger main window��align��center��uri��images/debug_main.png�hg}�hijqsuhhUh"h#hKh jhh!hubhk)��}�(h�uThe lower panel of the debugger window provides a set of tabs that allow you to138review information about the program:�h]�hJ�uThe lower panel of the debugger window provides a set of tabs that allow you to139review information about the program:�����}�(h jsh!hh"NhNubah}�(h]�h]�h]�h]�h]�uhhjh"h#hK�h jhh!hubh�)��}�(hX�* The *Parameters* tab displays the value of each parameter.140* The *Local* variables tab displays the current value of the program variables.141* The *Messages* tab displays any messages returned by the server (errors,142  warnings and informational messages).143* The *Results* tab displays the server message when the program completes.144* The *Stack* tab displays the list of functions that have been invoked, but145  which have not yet completed.146�h]�j�)��}�(hhh]�(j�)��}�(h�:The *Parameters* tab displays the value of each parameter.�h]�hk)��}�(hj�h]�(hJ�The �����}�(h j�h!hh"NhNubh�)��}�(h�*Parameters*�h]�hJ�147Parameters�����}�(h j�h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhh�h j�ubhJ�* tab displays the value of each parameter.�����}�(h j�h!hh"NhNubeh}�(h]�h]�h]�h]�h]�uhhjh"h#hK�h j�ubah}�(h]�h]�h]�h]�h]�uhj�h"h#hK�h j�ubj�)��}�(h�NThe *Local* variables tab displays the current value of the program variables.�h]�hk)��}�(hj�h]�(hJ�The �����}�(h j�h!hh"NhNubh�)��}�(h�*Local*�h]�hJ�Local�����}�(h j�h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhh�h j�ubhJ�C variables tab displays the current value of the program variables.�����}�(h j�h!hh"NhNubeh}�(h]�h]�h]�h]�h]�uhhjh"h#hK�h j�ubah}�(h]�h]�h]�h]�h]�uhj�h"h#hK�h j�ubj�)��}�(h�nThe *Messages* tab displays any messages returned by the server (errors,148warnings and informational messages).�h]�hk)��}�(h�nThe *Messages* tab displays any messages returned by the server (errors,149warnings and informational messages).�h]�(hJ�The �����}�(h j�h!hh"NhNubh�)��}�(h�150*Messages*�h]�hJ�Messages�����}�(h j�h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhh�h j�ubhJ�` tab displays any messages returned by the server (errors,151warnings and informational messages).�����}�(h j�h!hh"NhNubeh}�(h]�h]�h]�h]�h]�uhhjh"h#hK�h j�ubah}�(h]�h]�h]�h]�h]�uhj�h"h#hK�h j�ubj�)��}�(h�IThe *Results* tab displays the server message when the program completes.�h]�hk)��}�(hjh]�(hJ�The �����}�(h jh!hh"NhNubh�)��}�(h�	*Results*�h]�hJ�Results�����}�(h jh!hh"NhNubah}�(h]�h]�h]�h]�h]�uhh�h jubhJ�< tab displays the server message when the program completes.�����}�(h jh!hh"NhNubeh}�(h]�h]�h]�h]�h]�uhhjh"h#hK�h jubah}�(h]�h]�h]�h]�h]�uhj�h"h#hK�h j�ubj�)��}�(h�iThe *Stack* tab displays the list of functions that have been invoked, but152which have not yet completed.153�h]�hk)��}�(h�hThe *Stack* tab displays the list of functions that have been invoked, but154which have not yet completed.�h]�(hJ�The �����}�(h j1h!hh"NhNubh�)��}�(h�*Stack*�h]�hJ�Stack�����}�(h j9h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhh�h j1ubhJ�] tab displays the list of functions that have been invoked, but155which have not yet completed.�����}�(h j1h!hh"NhNubeh}�(h]�h]�h]�h]�h]�uhhjh"h#hK�h j-ubah}�(h]�h]�h]�h]�h]�uhj�h"h#hK�h j�ubeh}�(h]�h]�h]�h]�h]�jhiuhj�h"h#hK�h j�ubah}�(h]�h]�h]�h]�h]�uhh�h"h#hK�h jhh!hubhk)��}�(h�eAs you step through a program, the *Local variables* tab displays the current156value of each variable:�h]�(hJ�#As you step through a program, the �����}�(h jch!hh"NhNubh�)��}�(h�*Local variables*�h]�hJ�Local variables�����}�(h jkh!hh"NhNubah}�(h]�h]�h]�h]�h]�uhh�h jcubhJ�1 tab displays the current157value of each variable:�����}�(h jch!hh"NhNubeh}�(h]�h]�h]�h]�h]�uhhjh"h#hK�h jhh!hubhV)��}�(h�`.. image:: images/debug_variables.png158    :alt: Debugger local variables tab159    :align: center160�h]�h}�(h]�h]�h]�h]�h]��alt��Debugger local variables tab��align��center��uri��images/debug_variables.png�hg}�hij�suhhUh"h#hK�h jhh!hubhk)��}�(h��When you step into a subroutine, the *Stack* tab displays the call stack,161including the name of each caller, the parameter values for each caller (if162any), and the line number within each caller:�h]�(hJ�%When you step into a subroutine, the �����}�(h j�h!hh"NhNubh�)��}�(h�*Stack*�h]�hJ�Stack�����}�(h j�h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhh�h j�ubhJ�� tab displays the call stack,163including the name of each caller, the parameter values for each caller (if164any), and the line number within each caller:�����}�(h j�h!hh"NhNubeh}�(h]�h]�h]�h]�h]�uhhjh"h#hK�h jhh!hubhV)��}�(h�X.. image:: images/debug_stack.png165    :alt: Debugger local stack tab166    :align: center167�h]�h}�(h]�h]�h]�h]�h]��alt��Debugger local stack tab��align��center��uri��images/debug_stack.png�hg}�hij�suhhUh"h#hK�h jhh!hubhk)��}�(h�kSelect a caller to change focus to that stack frame and display the state of168the caller in the upper panel.�h]�hJ�kSelect a caller to change focus to that stack frame and display the state of169the caller in the upper panel.�����}�(h j�h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhhjh"h#hK�h jhh!hubhk)��}�(h��When the program completes, the *Results* tab displays the message returned by170the server.  If the program encounters an error, the *Messages* tab displays171details:�h]�(hJ� When the program completes, the �����}�(h j�h!hh"NhNubh�)��}�(h�	*Results*�h]�hJ�Results�����}�(h j�h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhh�h j�ubhJ�[ tab displays the message returned by172the server.  If the program encounters an error, the �����}�(h j�h!hh"NhNubh�)��}�(h�173*Messages*�h]�hJ�Messages�����}�(h j�h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhh�h j�ubhJ� tab displays174details:�����}�(h j�h!hh"NhNubeh}�(h]�h]�h]�h]�h]�uhhjh"h#hK�h jhh!hubhV)��}�(h�].. image:: images/debug_error_message.png175    :alt: Debugger error message176    :align: center�h]�h}�(h]�h]�h]�h]�h]��alt��Debugger error message��align��center��uri��images/debug_error_message.png�hg}�hijsuhhUh"h#hK�h jhh!hubeh}�(h]��using-the-debugger�ah]�h]��using the debugger�ah]�h]�uhh$h h&h!hh"h#hK\ubeh}�(h]�(h�id1�eh]�h]��debugger�ah]��debugger�ah]�uhh$h hh!hh"h#hK�177referenced���expect_referenced_by_name�}�j#hs�expect_referenced_by_id�}�hhsubeh}�(h]�h]�h]�h]�h]��source�h#�translation_progress�}�(�total�K�178translated�Kuuhh�current_source�N�current_line�N�settings��docutils.frontend��Values���)��}�(�output�Nh)N�	generator�N�	datestamp�N�root_prefix��/��source_link�N�179source_url�N�
toc_backlinks�j��footnote_backlinks���
sectnum_xform���strip_comments�N�strip_elements_with_classes�N�
strip_classes�N�report_level�K�180halt_level�K�exit_status_level�K�debug�N�warning_stream�N�	traceback���input_encoding��	utf-8-sig��input_encoding_error_handler��strict��output_encoding��utf-8��output_encoding_error_handler�jU�error_encoding��cp1252��error_encoding_error_handler��backslashreplace��
language_code��en��record_dependencies�N�config�N�	id_prefix�h�auto_id_prefix��id��
dump_settings�N�dump_internals�N�dump_transforms�N�dump_pseudo_xml�N�expose_internals�N�strict_visitor�N�_disable_config�N�_source�h#�_destination�N�
_config_files�]��file_insertion_enabled���raw_enabled�K�line_length_limit�M'�pep_references�N�pep_base_url��https://peps.python.org/��pep_file_url_template��pep-%04d��rfc_references�N�rfc_base_url��&https://datatracker.ietf.org/doc/html/��	tab_width�K�trim_footnote_reference_space���syntax_highlight��long��smart_quotes���smartquotes_locales�]��character_level_inline_markup���doctitle_xform���
docinfo_xform���sectsubtitle_xform���
image_loading��link��embed_stylesheet���cloak_email_addresses���section_self_link���env�Nub�reporter�N�indirect_targets�]��substitution_defs�}��substitution_names�}��refnames�}��refids�}�h]�has�nameids�}�(j#hjnjkjejbjju�	nametypes�}�(j#�jn�je�j�uh}�(hh&j h&jkh�jbjqjjhu�
footnote_refs�}��
citation_refs�}��
autofootnotes�]��autofootnote_refs�]��symbol_footnotes�]��symbol_footnote_refs�]��	footnotes�]��	citations�]��autofootnote_start�K�symbol_footnote_start�K�181id_counter��collections��Counter���}�jcKs��R��parse_messages�]�h	�system_message���)��}�(hhh]�hk)��}�(h�+Duplicate implicit target name: "debugger".�h]�hJ�/Duplicate implicit target name: “debugger”.�����}�(h j�h!hh"NhNubah}�(h]�h]�h]�h]�h]�uhhjh j�ubah}�(h]�h]�h]�h]�h]�j a�level�K�type��INFO��source�h#�line�Kuhj�h h&h!hh"h#hKuba�transform_messages�]�(j�)��}�(hhh]�hk)��}�(hhh]�hJ�.Hyperlink target "debugger" is not referenced.�����}�h j�sbah}�(h]�h]�h]�h]�h]�uhhjh j�ubah}�(h]�h]�h]�h]�h]��level�K�type�j��source�h#�line�Kuhj�ubj�)��}�(hhh]�hk)��}�(hhh]�hJ�-Hyperlink target "index-0" is not referenced.�����}�h j�sbah}�(h]�h]�h]�h]�h]�uhhjh j�ubah}�(h]�h]�h]�h]�h]��level�K�type�j��source�h#�line�Kuhj�ube�transformer�N�include_log�]��182decoration�Nh!hub.
codekingpro/portable-devtools · Team Ai