For debug purposes, I want to print a line number (and function name) of the place the current function was called from. How do I get this in R?
I've seen a solution of getting the source file name But how to get the line number and function name?]
EDIT: I found how to get this data from traceback()
in some form, traceback is able to print it out, but I am not sure how to decode the information out of it:
f <- function () {
traceback(x = 3, max.lines = 1)
}
g <- function()
{
f()
}
x <- g()
source("file.R") # file with this code
# 5: g() at file.R#20
# 4: eval(ei, envir)
# 3: eval(ei, envir)
# 2: withVisible(eval(ei, envir))
# 1: source("file.R")
str(x[[1]])
# chr "g()"
# - attr(*, "srcref")= 'srcref' int [1:8] 20 1 20 8 1 8 20 20
# ..- attr(*, "srcfile")=Classes 'srcfilecopy', 'srcfile' <environment: 0x0000000013a31700>