IDLE debugger questions
Ned Deily
nad at acm.org
Fri Oct 22 23:11:38 EDT 2010
In article
<04a3c943-5aee-4248-9cb3-60ea424108cb at j4g2000prm.googlegroups.com>,
Roger Davis <rbd at hawaii.edu> wrote:
> Hi, I have some questions about the IDLE debugger. I am using the
> 2.6.6 bundle downloaded from python.org.
>
> First, how do I debug a Python program that requires command-line
> args? I usually run it with a command like
>
> % test.py arg1 arg2 arg3
One way would be to add some initialization test code to the main module
to set sys.argv. Another way is to call idle from the command line:
$ /usr/local/bin/idle2.6 -h
USAGE: idle [-deins] [-t title] [file]*
idle [-dns] [-t title] (-c cmd | -r file) [arg]*
idle [-dns] [-t title] - [arg]*
-h print this help message and exit
-n run IDLE without a subprocess (see Help/IDLE Help for
details)
The following options will override the IDLE 'settings' configuration:
-e open an edit window
-i open a shell window
The following options imply -i and will open a shell:
-c cmd run the command in a shell, or
-r file run script from file
-d enable the debugger
-s run $IDLESTARTUP or $PYTHONSTARTUP before anything else
-t title set title of shell window
A default edit window will be bypassed when -c, -r, or - are used.
[arg]* are passed to the command (-c) or script (-r) in sys.argv[1:].
Examples:
idle
Open an edit window or shell depending on IDLE's configuration.
idle foo.py foobar.py
Edit the files, also open a shell if configured to start with
shell.
idle -est "Baz" foo.py
Run $IDLESTARTUP or $PYTHONSTARTUP, edit foo.py, and open a shell
window with the title "Baz".
idle -c "import sys; print sys.argv" "foo"
Open a shell window and run the command, passing "-c" in
sys.argv[0]
and "foo" in sys.argv[1].
idle -d -s -r foo.py "Hello World"
Open a shell window, run a startup script, enable the debugger,
and
run foo.py, passing "foo.py" in sys.argv[0] and "Hello World" in
sys.argv[1].
echo "import sys; print sys.argv" | idle - "foobar"
Open a shell window, run the script piped in, passing '' in
sys.argv[0]
and "foobar" in sys.argv[1].
> Second, some folk say you can set a breakpoint by right-clicking on
> the desired line in the source window to get a popup menu. This does
> not work for me on my MacBook (external 3-button USB mouse), it only
> adds a line-break into the source code. Any suggestions?
Right-click (control-click) menus currently don't work in IDLE on OS X.
I hope to get that fixed eventually.
--
Ned Deily,
nad at acm.org
More information about the Python-list
mailing list