Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
cpython
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
cpython
Commits
2afbf96f
Commit
2afbf96f
authored
Apr 26, 2006
by
Fred Drake
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
markup fixes, cleanup
parent
d845e53b
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
67 additions
and
38 deletions
+67
-38
Doc/Makefile.deps
Doc/Makefile.deps
+1
-0
Doc/lib/libtrace.tex
Doc/lib/libtrace.tex
+66
-38
No files found.
Doc/Makefile.deps
View file @
2afbf96f
...
...
@@ -180,6 +180,7 @@ LIBFILES= $(MANSTYLES) $(INDEXSTYLES) $(COMMONTEX) \
lib/libprofile.tex
\
lib/libhotshot.tex
\
lib/libtimeit.tex
\
lib/libtrace.tex
\
lib/libcgi.tex
\
lib/libcgitb.tex
\
lib/liburllib.tex
\
...
...
Doc/lib/libtrace.tex
View file @
2afbf96f
...
...
@@ -9,7 +9,7 @@ annotated statement coverage listings, print caller/callee relationships and
list functions executed during a program run. It can be used in another
program or from the command line.
\subsection
{
Command Line Usage
}
\subsection
{
Command Line Usage
\label
{
trace-cli
}
}
The
\module
{
trace
}
module can be invoked from the command line. It can be
as simple as
...
...
@@ -19,39 +19,62 @@ python -m trace --count somefile.py ...
\end{verbatim}
The above will generate annotated listings of all Python modules imported
during the execution of
\
cod
e
{
somefile.py
}
.
during the execution of
\
fil
e
{
somefile.py
}
.
\subsection
{
Command Line Arguments
}
The following command-line arguments are supported:
\begin{description}
\item
[--trace, -t]
{
Display lines as they are executed.
}
\item
[--count, -c]
{
Produce a set of annotated listing files upon program
completion that shows how many times each statement was executed.
}
\item
[--report, -r]
{
Produce an annotated list from an earlier program run that
used the
\code
{
--count
}
and
\code
{
--file
}
arguments.
}
\item
[--no-report, -R]
{
Do not generate annotated listings. This is useful
if you intend to make several runs with
\code
{
--count
}
then produce a single
set of annotated listings at the end.
}
\item
[--listfuncs, -l]
{
List the functions executed by running the program.
}
\item
[--trackcalls, -T]
{
Generate calling relationships exposed by running the
program.
}
\item
[--file, -f]
{
Name a file containing (or to contain) counts.
}
\item
[--coverdir, -C]
{
Name a directory in which to save annotated listing
files.
}
\item
[--missing, -m]
{
When generating annotated listings, mark lines which
were not executed with
\code
{
>>>>>>
}
.
}
\item
[--summary -s]
{
When using
\code
{
--count
}
or
\code
{
--report
}
, write a
brief summary to stdout for each file processed.
}
\item
[--ignore-module]
{
Ignore the named module and its submodules (if it is
a package). May be given multiple times.
}
\item
[--ignore-dir]
{
Ignore all modules and packages in the named directory
and subdirectories. May be given multiple times.
}
\end{description}
\item
[\longprogramopt{trace}, \programopt{-t}]
Display lines as they are executed.
\item
[\longprogramopt{count}, \programopt{-c}]
Produce a set of annotated listing files upon program
completion that shows how many times each statement was executed.
\item
[\longprogramopt{report}, \programopt{-r}]
Produce an annotated list from an earlier program run that
used the
\longprogramopt
{
count
}
and
\longprogramopt
{
file
}
arguments.
\item
[\longprogramopt{no-report}, \programopt{-R}]
Do not generate annotated listings. This is useful if you intend to make
several runs with
\longprogramopt
{
count
}
then produce a single set
of annotated listings at the end.
\item
[\longprogramopt{listfuncs}, \programopt{-l}]
List the functions executed by running the program.
\item
[\longprogramopt{trackcalls}, \programopt{-T}]
Generate calling relationships exposed by running the program.
\item
[\longprogramopt{file}, \programopt{-f}]
Name a file containing (or to contain) counts.
\item
[\longprogramopt{coverdir}, \programopt{-C}]
Name a directory in which to save annotated listing files.
\subsection
{
Program Usage
}
\item
[\longprogramopt{missing}, \programopt{-m}]
When generating annotated listings, mark lines which
were not executed with
\code
{
>
}
\code
{
>
}
\code
{
>
}
\code
{
>
}
\code
{
>
}
\code
{
>
}
.
\begin{classdesc}
{
Trace
}{
\optional
{
count=1
\optional
{
,trace=1
\optional
{
,countfuncs=0
\optional
{
,countcallers=0
\optional
{
,ignoremods=()
\optional
{
,ignoredirs=()
\optional
{
,infile=None
\optional
{
,outfile=None
}}}}}}}}}
\item
[\longprogramopt{summary}, \programopt{-s}]
When using
\longprogramopt
{
count
}
or
\longprogramopt
{
report
}
, write a
brief summary to stdout for each file processed.
\item
[\longprogramopt{ignore-module}]
Ignore the named module and its submodules (if it is
a package). May be given multiple times.
\item
[\longprogramopt{ignore-dir}]
Ignore all modules and packages in the named directory
and subdirectories. May be given multiple times.
\end{description}
\subsection
{
Programming Interface
\label
{
trace-api
}}
\begin{classdesc}
{
Trace
}{
\optional
{
count=1
\optional
{
, trace=1
\optional
{
,
countfuncs=0
\optional
{
, countcallers=0
\optional
{
,
ignoremods=()
\optional
{
, ignoredirs=()
\optional
{
,
infile=None
\optional
{
, outfile=None
}}}}}}}}}
Create an object to trace execution of a single statement or expression.
All parameters are optional.
\var
{
count
}
enables counting of line numbers.
\var
{
trace
}
enables line execution tracing.
\var
{
countfuncs
}
enables
...
...
@@ -61,36 +84,41 @@ packages to ignore. \var{ignoredirs} is a list of directories whose modules
or packages should be ignored.
\var
{
infile
}
is the file from which to read
stored count information.
\var
{
outfile
}
is a file in which to write updated
count information.
\end{classdesc}
\begin{methoddesc}
[Trace]
{
run
}{
cmd
}
Run
\
code
{
cmd
}
under control of the Trace object with the current tracing
Run
\
var
{
cmd
}
under control of the Trace object with the current tracing
parameters.
\end{methoddesc}
\begin{methoddesc}
[Trace]
{
runctx
}{
cmd
\optional
{
,globals=None
\optional
{
,locals=None
}}}
Run
\code
{
cmd
}
under control of the Trace object with the current tracing
\begin{methoddesc}
[Trace]
{
runctx
}{
cmd
\optional
{
, globals=None
\optional
{
,
locals=None
}}}
Run
\var
{
cmd
}
under control of the Trace object with the current tracing
parameters in the defined global and local environments. If not defined,
\
code
{
globals
}
and
\code
{
locals
}
default to empty dictionaries.
\
var
{
globals
}
and
\var
{
locals
}
default to empty dictionaries.
\end{methoddesc}
\begin{methoddesc}
[Trace]
{
runfunc
}{
func, *args, **kwds
}
Call
\
code
{
function
}
with the given arguments under control of the Trac
e
object with the current tracing parameters.
Call
\
var
{
func
}
with the given arguments under control of th
e
\class
{
Trace
}
object with the current tracing parameters.
\end{methoddesc}
\subsubsection
{
Example
}
This is a simple example showing the use of this module:
\begin{verbatim}
import sys
import trace
# create a Trace object, telling it what to ignore, and whether to
# do tracing or line-counting or both.
tracer = trace.Trace(ignoredirs=[sys.prefix, sys.exec
_
prefix,], trace=0,
count=1)
tracer = trace.Trace(
ignoredirs=[sys.prefix, sys.exec
_
prefix],
trace=0,
count=1)
# run the new command using the given tracer
tracer.run('main()')
# make a report, placing output in /tmp
r = tracer.results()
r.write
_
results(show
_
missing=True, coverdir="/tmp")
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment