[racket] Can not set breakpoints on macro calls that do not expand into a single command

From: Dmitry Pavlov (dmitry.pavlov at gmail.com)
Date: Mon Nov 14 03:24:27 EST 2011

Hello,

I am having trouble debugging Racket code that contains macros.
Here is the simplest example:


#lang racket

(define-syntax-rule (my-print x)
  (printf "~a\n" x))

(define-syntax-rule (my-print1 x)
  (begin
    (printf "~a\n" x)))

(my-print  10)
(my-print1 20)
(my-print  30)
(my-print1 40)


When I enter the above code in DrRacket and press "Debug",
I find out that I can set breakpoints on (my-print  10)
and (my-print  30), but can not set breakpoints on
(my-print1 20) and (my-print1 40).

How does the "begin" in my-print1 affect the debugger?
Is there a way to set breakpoints for complex macros?
I would appreciate any pointers.


I use Racket 5.1.3.

Best regards,

Dmitry


Posted on the users mailing list.