emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Eric Schulte <schulte.eric@gmail.com>
To: Andreas Leha <andreas.leha@med.uni-goettingen.de>
Cc: emacs-orgmode@gnu.org
Subject: Re: [babel] automatically add debugging output
Date: Sat, 03 Nov 2012 18:52:23 -0600	[thread overview]
Message-ID: <874nl6w5o8.fsf@gmail.com> (raw)
In-Reply-To: <87bofeb4mx.fsf@med.uni-goettingen.de> (Andreas Leha's message of "Sun, 04 Nov 2012 01:20:22 +0100")

Andreas Leha <andreas.leha@med.uni-goettingen.de> writes:

> Hi all,
>
> is it possible to have babel add debugging lines during execution?
>
> Consider this example with an enabled debug property:
> #+PROPERTY: session *R*
> #+PROPERTY: debug yes
>
> * Some code blocks
> #+name: codeA
> #+begin_src R
>   sum(1)
> #+end_src
>
> #+name: codeB
> #+begin_src R
>   sum(2)
> #+end_src
>
> When executing the subtree with C-c C-v s, for example, I'd like babel to
> automatically add some print() statements, so that executed is
> ,----
> | print("entering codeA")
> | sum(1)
> | print("leaving codeA")
> |
> | print("entering codeB")
> | sum(2)
> | print("leaving codeB")
> `----
>
> As there is a print statement in most languages, this should be possible
> quite universal for any language.
>
>
>
> Also handy would be the insertion of breakpoints
> (maybe #+PROPERTY: interactive-debug yes)
> In R that would lead to the execution of:
> ,----
> | browser()
> | sum(1)
> |
> | browser()
> | sum(2)
> `----
>
>
> Are these things possible?

Certainly, I'd pick a language you care about (I'm guessing python), and
take a shot at an implementation for that language.  If this proves
useful then these header arguments can be ported to other languages as
there is demand and developer time supply.

> 
> (Or better question: How are these things possible?)
>

Take a look at the ob-python.el.  Find where
`org-babel-expand-body:generic' is called, you will want to replace
these calls with `org-babel-expand-body:python' and then write this new
function s.t. it calls `org-babel-expand-body:generic' and does the
optional debug wrapping if the debug param is present.

As you said this should be fairly straightforward.  If you do plan to
add this feature please be prepared to write some documentation too. :)

Thanks!

>
>
> Regards,
> Andreas
>
>

-- 
Eric Schulte
http://cs.unm.edu/~eschulte

      reply	other threads:[~2012-11-04  0:52 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-11-04  0:20 [babel] automatically add debugging output Andreas Leha
2012-11-04  0:52 ` Eric Schulte [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=874nl6w5o8.fsf@gmail.com \
    --to=schulte.eric@gmail.com \
    --cc=andreas.leha@med.uni-goettingen.de \
    --cc=emacs-orgmode@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).