Have a look at Kernel#caller
dave[Downloads/emacs 13:46:32] ri caller
---------------------------------------------------------- Kernel#caller
caller(start=1) => array
···
On Mar 6, 2004, at 13:29, Sam Roberts wrote:
I want a version of “pp” that prints the file/line, so I tried this:
def debug(*objs)
print FILE, ‘:’, LINE, ‘:’
pp(*objs)
end
Returns the current execution stack---an array containing strings
in the form ``file:line'' or ``file:line: in `method'''. The
optional start parameter determines the number of initial stack
entries to omit from the result.
def a(skip)
caller(skip)
end
def b(skip)
a(skip)
end
def c(skip)
b(skip)
end
c(0) #=> ["prog:2:in `a'", "prog:5:in `b'", "prog:8:in `c'",
“prog:10”]
c(1) #=> [“prog:5:in b'", "prog:8:in
c’”, “prog:11”]
c(2) #=> [“prog:8:in `c’”, “prog:12”]
c(3) #=> [“prog:13”]
Cheers
Dave