- }, finally=sendToEmacs(io, c(list(quote(`:debug-return`), id, sldbState$level, FALSE))))
-}
-
-debuggerInfoForEmacs <- function(sldbState, from=0, to=NULL) {
- backtraceForEmacs <- function() {
- calls <- sldbState$calls
- if(is.null(to)) to <- length(calls)
- from <- from+1
- calls <- lapply(calls[from:to], { frameNumber <- from-1;
- function (x) { ret <- list(frameNumber, paste(format(x), sep="", collapse=" ")); frameNumber <<- 1+frameNumber; ret }})
- }
- computeRestartsForEmacs <- function () {
- lapply(sldbState$restarts,
- function(x) {
- ## this is all a little bit internalsy
- restartName <- x[[1]][[1]]
- description <- restartDescription(x)
- list(restartName, if(is.null(description)) restartName else description)
- })
- }
- list(list(as.character(sldbState$condition), sprintf(" [%s]", class(sldbState$condition)[[1]]), FALSE),
- computeRestartsForEmacs(),
- backtraceForEmacs(),
- list(sldbState$id))
+ }, finally=sendToEmacs(slimeConnection, c(list(quote(`:debug-return`), id, sldbState$level, FALSE))))