[R] How do I step thru all lines (including step into sub-routines) in a R script?

Duncan Murdoch murdoch.duncan at gmail.com
Tue Nov 13 23:28:12 CET 2012


On 12-11-13 5:07 PM, Michael wrote:
> Is there a way to strip out all functions in hundreds of R script?
> And then I can create a script which does "debug(foo1); debug(foo2);
> debug(foo3);",etc?

Not a simple one.  You could try parsing all the scripts, and look for 
function definitions, and then see where those were assigned.

It would be easier to organize your scripts so that some of them define 
functions, and others call them.  Then just define all the functions, 
and use ls() to find their names.

Duncan Murdoch


> Thank you!
>
> On Tue, Nov 13, 2012 at 3:56 PM, Duncan Murdoch
> <murdoch.duncan at gmail.com <mailto:murdoch.duncan at gmail.com>> wrote:
>
>     On 12-11-13 4:50 PM, Michael wrote:
>
>         but there are hundreds of such functions...? how to mark them
>         all using
>         "debug"?
>
>
>     When you see you are about to enter one that you haven't marked, you
>     can mark it from within the debugger.  (So in some other debuggers
>     you'd type "s" to step in; in R you need to type "debug(foo)" then "n".
>
>     Duncan Murdoch
>
>         thanks!
>
>         On Tue, Nov 13, 2012 at 3:43 PM, Duncan Murdoch
>         <murdoch.duncan at gmail.com <mailto:murdoch.duncan at gmail.com>
>         <mailto:murdoch.duncan at gmail.__com
>         <mailto:murdoch.duncan at gmail.com>>> wrote:
>
>              On 12-11-13 4:05 PM, Michael wrote:
>
>                  How do I step thru all lines (including step into
>         sub-routines)
>                  in a R
>                  script?
>
>                  Hi all,
>
>                  I know I can put a "browser()" into any place...
>
>                  but how to step into sub-routines?
>
>                  Keep pressing "n" at the break-point seems not getting
>         me into the
>                  sub-routines?
>
>
>              Mark all your functions for debugging using debug().  It's
>         not like
>              a debugger that will single step until you tell it to just
>         continue
>              on, but it gives you the individual steps.
>
>              When you've had enough of that, use undebug() to mark the
>         functions
>              for stepping over.
>
>              Duncan Murdoch
>
>
>
>




More information about the R-help mailing list