[ESS] ESS 13.05 produces wrong behavior in browser() debugging for loops

Vitalie Spinu spinuvit at gmail.com
Wed Jun 19 23:30:44 CEST 2013

 >> Levi Waldron <lwaldron.research at gmail.com>
 >> on Wed, 19 Jun 2013 16:29:21 -0400 wrote:

 > On Tue, Jun 18, 2013 at 7:10 PM, Vitalie Spinu <spinuvit at gmail.com> wrote:
 >> > to, and often expand
 >> What is expanding a function? Do you mean evaluate?

 > Thank you again, Vitalie.

 > By expand, I meant adding new code to a function while in debug mode within
 > that function.  For example, starting a function by writing this:

 > Fun <- function(x){
 >     browser()
 > }

 > then calling Fun(3) and writing the function with the Browse[1]>  prompt in
 > the inferior R process.  Then without stepwise mode, I can add a loop or
 > conditional and have it run through and return to the same browser level,
 > or stop within it by adding another browser() statement then return to the
 > first browser level with "c".  The above example is silly, but I do often
 > find this approach convenient when writing functions of many input
 > variables.

Interesting work flow. It is the same type of problem I have reported on
R-devel. Debugger should not step through user-entered blocks. Be it
"for" loops or simply {1+2}. It would be nice if you could report this
as an R bug. More people complain, faster it will be solved.

In the R documentation empty line and "n" are equivalent. In reality
they behave differently.

 > Is there a straightforward way to change my ESS default to not enter
 > stepwise mode, since it appears from ?browser that 'n' is
 > irreversible?

On ESS side there is an in-built workaround
ess-debug-skip-first-call. Set it to nil and you won't be immediately
dropped into step mode (but also not into visual debugger). Beware that
if you start using step shortcut (M-N) ESS will start sending "n" again.

I will try changing ESS debugger to send empty lines instead of "n". I
think I have tried this before and it didn't work well. So may be a
custom variable for what letter to send is justified here.


More information about the ESS-help mailing list