Member variable Thread():debug Foundation

Specifies whether the thread can be debugged.

Attribute: READONLY ASSIGNMENT PROTECTED
Data type: Logical (.T.)
Description

The :debug setting specifies whether the code that is executed by the thread can be debugged. By default, the value .T. (true) is assigned to the :debug member variable. This means that execution is stopped in the debugger whenever a breakpoint is reached in code executed by the thread object. If debugging is disabled for a thread by assigning .F. (false) to :debug, however, breakpoints in the thread's code are ignored and execution continues uninterrupted in the debugger. This can be used to "hide" system or timer threads which are not central to the application logic. An example for this might be a thread which updates the hands of a clock. Unless this thread is "hidden" using its :debug member variable, the thread would continuously interrupt the user's debugging session.

The value assigned to :debug is used as the default value for the corresponding setting in the debugger. The debugger setting can be changed dynamically by the user in the thread list of the debugger.

A thread's debug setting is considered a low-level setting and should be used sparingly. For this reason, the value of the :debug member variable can only be changed in sub-classes derived from Thread.

The :debug setting of a thread should only be set once, preferrably in the :init() method of the derived thread class. Otherwise, the application-supplied value may overwrite settings specified by the user in the debugger.

Feedback

If you see anything in the documentation that is not correct, does not match your experience with the particular feature or requires further clarification, please use this form to report a documentation issue.