Annotation of 43BSDTahoe/man/man1/pdx.1, revision 1.1

1.1     ! root        1: .\" Copyright (c) 1983 Regents of the University of California.
        !             2: .\" All rights reserved.  The Berkeley software License Agreement
        !             3: .\" specifies the terms and conditions for redistribution.
        !             4: .\"
        !             5: .\"    @(#)pdx.1       6.1 (Berkeley) 4/29/85
        !             6: .\"
        !             7: .TH PDX 1 "April 29, 1985"
        !             8: .UC 5
        !             9: .SH NAME
        !            10: pdx \- pascal debugger
        !            11: .SH SYNOPSIS
        !            12: pdx [\fB\-r\fP] [\fIobjfile\fP]
        !            13: .SH DESCRIPTION
        !            14: \fIPdx\fP is a tool for source level debugging and execution of
        !            15: Pascal programs.
        !            16: The \fIobjfile\fP is an object file produced by the Pascal translator
        !            17: \fIpi\fP(1).  If no \fIobjfile\fP is specified, \fIpdx\fP looks
        !            18: for a file named ``obj'' in the current directory.
        !            19: The object file contains a symbol table which includes the name of the
        !            20: all the source files translated by \fIpi\fP to create it.
        !            21: These files are available for perusal while using the debugger.
        !            22: .PP
        !            23: If the file ``.pdxinit'' exists in the current directory, then the
        !            24: debugger commands in it are executed.
        !            25: .PP
        !            26: The \fB\-r\fP option causes the \fIobjfile\fP to be executed immediately;
        !            27: if it terminates successfully \fIpdx\fP exits.
        !            28: Otherwise it reports the reason for termination
        !            29: and offers the user the option of entering the debugger
        !            30: or simply letting \fIpx\fP continue with a traceback.
        !            31: If \fB\-r\fP is not specified, \fIpdx\fP just prompts and waits for a command.
        !            32: .PP
        !            33: The commands are:
        !            34: .TP
        !            35: \fBrun\fP [\fIargs\fP] [\fB<\fP \fIfilename\fP] [\fB>\fP \fIfilename\fP]
        !            36: Start executing \fIobjfile\fP, passing \fIargs\fP as command line arguments;
        !            37: \fB<\fP or \fB>\fP can be used to redirect input or output in the usual manner.
        !            38: .TP
        !            39: \fBtrace\fP [\fBin\fP \fIprocedure/function\fP] [\fBif\fP \fIcondition\fP]
        !            40: .ns
        !            41: .TP
        !            42: \fBtrace\fP \fIsource-line-number\fP [\fBif\fP \fIcondition\fP]
        !            43: .ns
        !            44: .TP
        !            45: \fBtrace\fP \fIprocedure/function\fP [\fBin\fP \fIprocedure/function\fP] [\fBif\fP \fIcondition\fP]
        !            46: .ns
        !            47: .TP
        !            48: \fBtrace\fP \fIexpression\fP \fBat\fP \fIsource-line-number\fP [\fBif\fP \fIcondition\fP]
        !            49: .ns
        !            50: .TP
        !            51: \fBtrace\fP \fIvariable\fP [\fBin\fP \fIprocedure/function\fP] [\fBif\fP \fIcondition\fP]
        !            52: Have tracing information printed when the program is executed.
        !            53: A number is associated with the command that is used
        !            54: to turn the tracing off (see the \fBdelete\fP command).
        !            55: .sp 1
        !            56: The first argument describes what is to be traced.
        !            57: If it is a \fIsource-line-number\fP, then the line is printed
        !            58: immediately prior to being executed.
        !            59: Source line numbers in a file other than the current one
        !            60: must be preceded by the name of the file and a colon, e.g.
        !            61: ``mumble.p:17''.
        !            62: .sp 1
        !            63: If the argument is a procedure or function name then
        !            64: every time it is called, information is printed telling
        !            65: what routine called it, from what source line it was called,
        !            66: and what parameters were passed to it.
        !            67: In addition, its return is noted, and if it's a function
        !            68: then the value it is returning is also printed.
        !            69: .sp 1
        !            70: If the argument is an \fIexpression\fP with an \fBat\fP clause
        !            71: then the value of the expression is printed whenever the
        !            72: identified source line is reached.
        !            73: .sp 1
        !            74: If the argument is a variable then the name and value of the variable
        !            75: is printed whenever it changes.
        !            76: Execution is substantially slower during this form of tracing.
        !            77: .sp 1
        !            78: If no argument is specified then all source lines are printed
        !            79: before they are executed.
        !            80: Execution is substantially slower during this form of tracing.
        !            81: .sp 1
        !            82: The clause ``\fBin\fP \fIprocedure/function\fP'' restricts tracing information
        !            83: to be printed only while executing inside the given procedure
        !            84: or function.
        !            85: .sp 1
        !            86: \fICondition\fP is a Pascal boolean expression and is
        !            87: evaluated prior to printing the tracing information;
        !            88: if it is false then the information is not printed.
        !            89: .sp 1
        !            90: There is no restriction on the amount of information
        !            91: that can be traced.
        !            92: .br
        !            93: .ne 10
        !            94: .IP "\fBstop\fP \fBif\fP \fIcondition\fP"
        !            95: .ns
        !            96: .IP "\fBstop\fP \fBat\fP \fIsource-line-number\fP [\fBif\fP \fIcondition\fP]"
        !            97: .ns
        !            98: .IP "\fBstop\fP \fBin\fP \fIprocedure/function\fP [\fBif\fP \fIcondition\fP]"
        !            99: .ns
        !           100: .IP "\fBstop\fP \fIvariable\fP [\fBif\fP \fIcondition\fP]"
        !           101: Stop execution when the given line is reached, procedure or function
        !           102: called, variable changed, or condition true.
        !           103: .IP "\fBdelete\fP \fIcommand-number\fP"
        !           104: The trace or stop corresponding to the given number is removed.
        !           105: The numbers associated with traces and stops are printed by
        !           106: the \fBstatus\fP command.
        !           107: .IP "\fBstatus\fP [\fB>\fP \fIfilename\fP]"
        !           108: Print out
        !           109: the currently active \fBtrace\fP and \fBstop\fP commands.
        !           110: .IP \fBcont\fP
        !           111: Continue execution from where it stopped.
        !           112: This can only be
        !           113: done when the program was stopped by an interrupt
        !           114: or through use of the \fBstop\fP command.
        !           115: .IP \fBstep\fP
        !           116: Execute one source line.
        !           117: .IP \fBnext\fP
        !           118: Execute up to the next source line.
        !           119: The difference between this and \fBstep\fP is that
        !           120: if the line contains a call to a procedure or function
        !           121: the \fBstep\fP command will stop at the beginning of that
        !           122: block, while the \fBnext\fP command will not.
        !           123: .IP "\fBprint\fP \fIexpression\fP [\fB,\fP \fIexpression\fP ...]"
        !           124: Print out the values of the Pascal expressions.
        !           125: Variables declared in an outer block but having
        !           126: the same identifier as one in the current block may be
        !           127: referenced as ``\fIblock-name\fP\ \fB.\fP\ \fIvariable\fP''.
        !           128: .IP "\fBwhatis\fP \fIidentifier\fP"
        !           129: Print the declaration of the given identifier.
        !           130: .IP "\fBwhich\fP \fIidentifier\fP"
        !           131: Print the full qualification of the given identifer, i.e.
        !           132: the outer blocks that the identifier is associated with.
        !           133: .IP "\fBassign\fP \fIvariable\fP \fIexpression\fP"
        !           134: Assign the value of the expression to the variable.
        !           135: .IP "\fBcall\fP \fIprocedure(parameters)\fP"
        !           136: Execute the object code associated with the named procedure or function.
        !           137: .IP \fBhelp\fP
        !           138: Print out a synopsis of \fIpdx\fP commands.
        !           139: .IP \fBgripe\fP
        !           140: Invokes a mail program to send a message to the person in charge of \fIpdx\fP.
        !           141: .IP \fBwhere\fP
        !           142: Print out
        !           143: a list of the active procedures and functions and the respective source
        !           144: line where they are called.
        !           145: .TP
        !           146: \fBsource\fP \fIfilename\fP
        !           147: Read \fIpdx\fP commands from the given \fIfilename\fP.
        !           148: Especially useful when the \fIfilename\fP has been created by redirecting
        !           149: a \fBstatus\fP command from an earlier debugging session.
        !           150: .IP "\fBdump\fP [\fB>\fP \fIfilename\fP]"
        !           151: Print the names and values of all active
        !           152: data.
        !           153: .IP "\fBlist\fP [\fIsource-line-number\fP [\fB,\fP \fIsource-line-number\fP]]"
        !           154: .ns
        !           155: .IP "\fBlist\fP \fIprocedure/function\fP"
        !           156: List the lines in the current source file from the first line number to
        !           157: the second inclusive.
        !           158: As in the editor
        !           159: ``$'' can be used to refer to the last line.
        !           160: If no lines are specified, the entire file is listed.
        !           161: If the name of a procedure or function is given
        !           162: lines \fIn-k\fP to \fIn+k\fP are listed where \fIn\fP is the first statement
        !           163: in the procedure or function and \fIk\fP is small.
        !           164: .IP "\fBfile\fP [\fIfilename\fP]"
        !           165: Change the current source file name to \fIfilename\fP.
        !           166: If none is specified then the current source file name is printed.
        !           167: .IP "\fBedit\fP [\fIfilename\fP]"
        !           168: .ns
        !           169: .IP "\fBedit\fP \fIprocedure/function-name\fP"
        !           170: Invoke an editor on \fIfilename\fP or the current source file if none
        !           171: is specified.
        !           172: If a \fIprocedure\fP or \fIfunction\fP name is specified,
        !           173: the editor is invoked on the file that contains it.
        !           174: Which editor is invoked by default depends on the installation.
        !           175: The default can be overridden by setting the environment variable
        !           176: EDITOR to the name of the desired editor.
        !           177: .IP \fBpi\fP
        !           178: Recompile the program and read in the new symbol table information.
        !           179: .IP "\fBsh\fP \fIcommand-line\fP"
        !           180: Pass the command line to the shell for execution.
        !           181: The SHELL environment variable determines which shell is used.
        !           182: .IP "\fBalias\fP \fInew-command-name\fP \fIold-command-name\fP"
        !           183: This command makes \fIpdx\fP respond to \fInew-command-name\fP
        !           184: the way it used to respond to \fIold-command-name\fP.
        !           185: .IP "\fBquit\fP"
        !           186: Exit \fIpdx\fP.
        !           187: .sp 4
        !           188: .PP
        !           189: The following commands deal with the program at the \fIpx\fP instruction
        !           190: level rather than source level.
        !           191: They are not intended for general use.
        !           192: .TP
        !           193: \fBtracei\fP [\fIaddress\fP] [\fBif\fP \fIcond\fP]
        !           194: .ns
        !           195: .TP
        !           196: \fBtracei\fP [\fIvariable\fP] [\fBat\fP \fIaddress\fP] [\fBif\fP \fIcond\fP]
        !           197: .ns
        !           198: .TP
        !           199: \fBstopi\fP [\fIaddress\fP] [\fBif\fP \fIcond\fP]
        !           200: .ns
        !           201: .TP
        !           202: \fBstopi\fP [\fBat\fP] [\fIaddress\fP] [\fBif\fP \fIcond\fP]
        !           203: Turn on tracing or set a stop using a \fIpx\fP machine
        !           204: instruction addresses.
        !           205: .TP
        !           206: \fBxi\fP \fIaddress\fP [\fB,\fP \fIaddress\fP]
        !           207: Print the instructions starting at the first \fIaddress\fP.
        !           208: Instructions up to
        !           209: the second \fIaddress\fP are printed.
        !           210: .TP
        !           211: \fBxd\fP \fIaddress\fP [\fB,\fP \fIaddress\fP]
        !           212: Print in octal the specified data location(s).
        !           213: .SH FILES
        !           214: .nr In 25
        !           215: .in +\n(Inn
        !           216: .ta \n(Inn
        !           217: .br
        !           218: .nr wg 1v
        !           219: .ie \n(.h=\n(vk .nr wg -\n(vhu
        !           220: .el .nr vh 0
        !           221: .if \n(wg>0 \{\
        !           222: .sp \n(wgu
        !           223: .nr vh +\n(wgu \}
        !           224: .nr vk \n(.h
        !           225: .ti -\n(Inn
        !           226: \&obj  \c
        !           227: Pascal object file
        !           228: .br
        !           229: .nr wg 0v
        !           230: .ie \n(.h=\n(vk .nr wg -\n(vhu
        !           231: .el .nr vh 0
        !           232: .if \n(wg>0 \{\
        !           233: .sp \n(wgu
        !           234: .nr vh +\n(wgu \}
        !           235: .nr vk \n(.h
        !           236: .ti -\n(Inn
        !           237: \&\&.pdxinit   \c
        !           238: \fIPdx\fP initialization file
        !           239: .in -\n(Inn
        !           240: .br
        !           241: .nr wg 1v
        !           242: .ie \n(.h=\n(vk .nr wg -\n(vhu
        !           243: .el .nr vh 0
        !           244: .if \n(wg>0 \{\
        !           245: .sp \n(wgu
        !           246: .nr vh +\n(wgu \}
        !           247: .nr vk \n(.h
        !           248: .SH SEE ALSO
        !           249: pi(1), px(1)
        !           250: .br
        !           251: \fIAn Introduction to Pdx\fP
        !           252: .SH BUGS
        !           253: \fIPdx\fP does not understand sets,
        !           254: and provides no information about files.
        !           255: .sp 1
        !           256: The \fIwhatis\fP command doesn't quite work for variant records.
        !           257: .sp 1
        !           258: Bad things will happen if a procedure invoked with
        !           259: the \fBcall\fP command does a non-local goto.
        !           260: .sp 1
        !           261: The commands \fBstep\fP and \fBnext\fP should be able to take a \fIcount\fP
        !           262: that specifies how many lines to execute.
        !           263: .sp 1
        !           264: There should be commands \fBstepi\fP and \fBnexti\fP that correspond
        !           265: to \fBstep\fP and \fBnext\fP but work at the instruction level.
        !           266: .sp 1
        !           267: There should be a way to get an address associated with
        !           268: a line number, procedure or function, and variable.
        !           269: .sp 1
        !           270: Most of the command names are too long.
        !           271: .sp 1
        !           272: The alias facility is quite weak.
        !           273: .sp 1
        !           274: A \fIcsh\fP-like history capability would improve the situation.

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.