[erlang-questions] How to get the line number of current executable code?

Edwin Fine <>
Fri Aug 15 23:48:27 CEST 2008


How cool is that?! Thanks!

On Fri, Aug 15, 2008 at 5:06 PM, Ulf Wiger <> wrote:

> Why sure, you just do this:
>
> -module(m).
> -export([f/0]).
>
> -define(FUNCTION, hd(element(2,element(2,catch erlang:error([]))))).
>
> f() ->
>  {current_function, ?FUNCTION}.
>
>
>
> Eshell V5.5.4  (abort with ^G)
> 1> c(m).
> {ok,m}
> 2> m:f().
> {current_function,{m,f,0}}
> 3>
>
> BR,
> Ulf W  ;-)
>
> 2008/8/15 Edwin Fine <>:
> > Something I've wished for in numerous languages over the years is a macro
> > that expands to the current function, something like ?MODULE. I don't
> > suppose there is one lurking somewhere in Erlang...?
> >
> > 2008/8/15 Matt Williamson <>
> >>
> >> You should trust the macro. It must use a similar method to Python's
> >> because they are both compiled to bytecode and thus there wouldn't
> *really*
> >> be line numbers in either one.
> >>
> >> 2008/8/15 devdoer bird <>
> >>>
> >>> Thanks.
> >>>
> >>> How can I do this without macro? I know python supply some tools to
> >>> determine the line number in run time,like inspect module.
> >>>
> >>>
> >>> 2008/8/16, Anders Nygren <>:
> >>>>
> >>>> 2008/8/15 devdoer bird <>:
> >>>> > HI:
> >>>> >
> >>>> > I want to implement a function like "get_current_lineno()/0" to get
> >>>> > the
> >>>> > current line number of the calling point?
> >>>> > Eg.
> >>>> > .....
> >>>> > ....
> >>>> > io:format("current line is ~w\n",[get_current_lineno()])
> >>>> > .....
> >>>> >
> >>>> > the above code will print the line number of the calling point in
> the
> >>>> > source
> >>>> > file.
> >>>> >
> >>>> > How can I do this  in erlang?
> >>>>
> >>>> There is a predefined macro ?LINE that does that
> >>>> so
> >>>> io:format("current line is ~w\n",[?LINE])
> >>>>
> >>>> /Anders
> >>>>
> >>>> > _______________________________________________
> >>>> > erlang-questions mailing list
> >>>> > 
> >>>> > http://www.erlang.org/mailman/listinfo/erlang-questions
> >>>> >
> >>>
> >>>
> >>> _______________________________________________
> >>> erlang-questions mailing list
> >>> 
> >>> http://www.erlang.org/mailman/listinfo/erlang-questions
> >>
> >>
> >> _______________________________________________
> >> erlang-questions mailing list
> >> 
> >> http://www.erlang.org/mailman/listinfo/erlang-questions
> >
> >
> >
> > --
> > For every expert there is an equal and opposite expert - Arthur C. Clarke
> >
> > _______________________________________________
> > erlang-questions mailing list
> > 
> > http://www.erlang.org/mailman/listinfo/erlang-questions
> >
>
>


-- 
For every expert there is an equal and opposite expert - Arthur C. Clarke
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20080815/c18eaa8c/attachment.html>


More information about the erlang-questions mailing list