|
|
Microsoft OS/2 SDK 12-15-1987
This is the new proposed CodeView user interface for thread debugging
under OS/2.
------
~ | * - all threads | F - freeze |
| n - threadID n | U - unfreeze |
| # - last running thread | S - select |
| . - current selected thread | - status |
| BP - breakpoint |
| T - trace |
| P - pstep |
| G - go |
| E - execute |
Freeze
------
~*F - freeze all threads
~5F - freeze thread 5
~#F - freeze last thread which ran
~.F - freeze current selected thread
Unfreeze
--------
~*U - unfreeze all threads
~5U - unfreeze thread 5
~#U - unfreeze last thread which ran
~.U - unfreeze current selected thread
Select - displays selected thread on screen
------
~*S - SYNTAX ERROR (can't select all threads)
~5S - select thread 5
~#S - select last thread which ran
~.S - select current selected thread (NOP)
<blank> - displays thread status
------
NOTE: this command not currently available.
if used with OS/2 1.00, displays:
"Thread status unavailable with this version of OS/2"
~* - show status for all threads
~5 _ show status for thread 5
~# - show status for last thread which ran
~. - show status for current selected thread
Format of status display:
ThreadID ThreadState ThreadPriority
ThreadState is one of the following:
Runnable
Suspended
Blocked
CritSection
Frozen
BreakPoint
----------
NOTE: when a breakpoint is hit, the thread which hit the
breakpoint is made the current selected thread
~*BP - set breakpoint process wide (all threads)
~5BP - set breakpoint for thread 5 only
~#BP - set breakpoint for last running thread only
~.BP - set breakpoint for current selected thread only
Trace (source mode)
-----
NOTE: tracing a specific thread does not force it to be the selected thread
~*T - all unfrozen threads run until current selected thread hits next source line
~5T - only thread 5 runs to next source line (all others temporarily frozen)
~#T - only last running thread runs to next source line
~.T - only current selected thread runs to next source line
Trace (assembly mode)
-----
NOTE: tracing a specific thread does not force it to be the selected thread
~*T - SYNTAX ERROR (not implemented)
~5T - only thread 5 single steps
~#T - only last running thread single steps
~.T - only current selected thread single steps
Pstep (source mode)
-----
NOTE: pstepping a specific thread does not force it to be the selected thread
~*P - all unfrozen threads run until current selected thread hits next source line
~5P - only thread 5 runs to next source line (all others temporarily frozen)
~#P - only last running thread runs to next source line
~.P - only current selected thread runs to next source line
Pstep (assembly mode)
-----
NOTE: pstepping a specific thread does not force it to be the selected thread
~*P - SYNTAX ERROR (not implemented)
~5P - only thread 5 steps
~#P - only last running thread steps
~.P - only current selected thread single steps
Go
--
NOTE: go with a specific thread does not force it to be the selected thread
~*G - all unfrozen threads run until a breakpoint is hit, or until process terminates
~5G - only thread 5 runs (all other threads temporarliy frozen)
~#G - only last running thread runs
~.G - only current selected thread runs
Execute
-------
NOTE: execute forces specified thread to be selected
~*E - all unfrozen threads execute but current selected thread stays selected
~5E - only thread 5 executes (all other threads temporarliy frozen)
~#E - only last running thread executes
~.E - only current selected thread executes
-----------------
When you specify a specific thread for T,P,G or E, the thread
is temporarily unfrozen for the command even if the user froze it.
NOTE:
If you use T,P,G or E on a specific thread or current selected thread and
the thread dies, then CodeView will display:
Thread terminated normally (0)
If the current selected thread terminates, the user will have to select
another thread before using T,P or E.
-----------------
Affects of other CodeView commands:
BP means ~*BP
T (source mode) means ~*T
T (assembly mode) means ~.T
P (source mode) means ~*P
P (assembly mode) means ~.P
G means ~*G
E means ~*E
-----------------
New CodeView error messages:
Thread status unavailable with this version of OS/2
Invalid thread ID
Thread blocked
All threads frozen
-----------------
The CodeView prompt will change from
>
to
nnn>
where nnn is the current selected thread, thus upon startup the
prompt will be
001>
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.