Changing Debugger Behavior

By default, long (multi-line) commands are truncated so that the debugger can fit them on a line. This occurs when the debugger prints out a command to be executed and also in the listing from the w command.

The w command has a -width flag which can change the current printing width. It takes a new width as an argument. For example to display long commands (such as procedure definitions):

dbg2.2> w -w 300

Because of the parameter substitutions, the w command may try to display extremely lengthy output. Imagine the following script:

puts [exec cat /etc/passwd]

When the debugger is run, w command output will be truncated unless the printing width is quite large.

2: exec cat /etc/passwd
dbg3.1> s
1: puts [exec cat /etc/passwd]
dbg2.2> w
*0: expect -D 1 debug-test3.exp
 1: puts {root:Xu.VjBHD/xM7E:0:1:Operator:/:/bin/csh
nobody:*:65534:65534::/...
dbg2.3> w -w 200
dbg2.4> w
*0: expect -D 1 debug-test3.exp
 1: puts {root:Xu.VjBHD/xM7E:0:1:Operator:/:/bin/csh
nobody:*:65534:65534::/:
daemon:*:1:1::/:
sys:*:2:2::/:/bin/csh
bin:*:3:3::/bin:
uucp:*:4:8::/var/spool/uucppublic:
news:*:6:6::/var/spool/news:/bin...
dbg2.5>

When output is truncated, an ellipsis is appended to the end. The default width is 75 which allows some space at the beginning of the line for the procedure call depth information.

By default, no other output formatting is performed. But even short commands can cause lots of scrolling. The following declaration of p4 is less then 75 characters but still ...

Get Exploring Expect now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.