Khi chức năng gỡ lỗi gọi các chức năng khác ở nhiều cấp bằng trình duyệt, thường khó có thể biết mức độ nào cần nhập để kiểm tra biến cụ thể. Thật khó hiểu khi các hàm có chứa các số gọi hàm trung gian là apply
, sapply
, lapply
. Có cách nào để tìm kiếm biến theo tên trên tất cả các cấp của ngăn xếp không?Tìm kiếm các đối tượng trong ngăn xếp cuộc gọi khi sử dụng trình duyệt
Giả sử tôi có các chức năng bên dưới, tạo ra lỗi trong f3
. Tôi sẽ giả định rằng khi bước vào cấp 5 tôi sẽ có thể liệt kê các nội dung của bất kỳ môi trường nào bên trên môi trường tôi hiện đang sử dụng, bằng cách sử dụng đối số pos
hoặc envir
theo một cách nào đó, nhưng tôi không thể tìm ra cách. Làm thế nào tôi có thể tìm kiếm ví dụ v2
?
f1 <- function(){
v1 <- 1
sapply(1:3, f2)
}
f2 <- function(...){
v2 <- 2
f3()
}
f3 <- function(){
v3 <- 3
stop("Oh no!")
}
> options(error=recover)
> f1()
Error in f3() : Oh no!
Enter a frame number, or 0 to exit
1: f1()
2: #3: sapply(1:3, f2)
3: lapply(X = X, FUN = FUN, ...)
4: FUN(1:3[[1]], ...)
5: #3: f3()
Rất thanh lịch, cảm ơn bạn! – Backlin