[slime-devel] Call stack when using Lisp debugger from sldb

Sometimes when I'm in sldb, I want to use the actual Lisp debugger because sometimes it more convenient to have a real repl. Pressing B works nicely. Previously, however, I would be in the debugger, and the backtrace would be exactly what I expected, with the top of stack being exactly where the error occurred. Now, however, the actual error is some 10-20 frames away because there are lots of slime things in between. This is kind of nice too because now I can return to sldb, which I couldn't before. But this also means I now have to go hunt around for the real offending frame. Is there a way to the old behavior? Ray

Helmut Eller wrote:
* Raymond Toy [2008-11-12 13:33+0100] writes:
Is there a way to the old behavior?
I restored the old behavior. By default SLDB returns before invoking the native debugger. If B is called with pefix argument the native debugger runs on top of SLDB.
That's a reasonable compromise, because there are times where I wished I could return to sldb. :-) Now I can, if I remember to use a prefix. Not sure which should be the default behavior, but I'm grateful to have a choice. Thanks! Ray

On Sun, Nov 23, 2008 at 6:15 PM, Raymond Toy <toy.raymond@gmail.com> wrote:
Not sure which should be the default behavior, but I'm grateful to have a choice.
Perhaps the default should be *not* returning from SLDB before entering the native debugger, since that is not undoable -- whereas "Gaah, Slime frames!" can then be fixed by going to to SLDB and invoking the native debugger with the prefix. ? Cheers, -- Nikodemus

* Nikodemus Siivola [2008-12-01 08:26+0100] writes:
On Sun, Nov 23, 2008 at 6:15 PM, Raymond Toy <toy.raymond@gmail.com> wrote:
Not sure which should be the default behavior, but I'm grateful to have a choice.
Perhaps the default should be *not* returning from SLDB before entering the native debugger, since that is not undoable -- whereas "Gaah, Slime frames!" can then be fixed by going to to SLDB and invoking the native debugger with the prefix.
It should be possible to call swank:simple-break to get SLDB back. A problem is of course the very unfriendly session management of SBCL's debugger. E.g. it doesn't even print a message that the debugger is waiting for the session. It's also a bit pointless that the debugged thread needs a terminal session when it doesn't even access the terminal. That's the case when the debugger does all I/O over SLIME's streams. Helmut.

On Mon, Dec 1, 2008 at 11:25 AM, Helmut Eller <heller@common-lisp.net> wrote:
A problem is of course the very unfriendly session management of SBCL's debugger. E.g. it doesn't even print a message that the debugger is waiting for the session. It's also a bit pointless that the debugged thread needs a terminal session when it doesn't even access the terminal. That's the case when the debugger does all I/O over SLIME's streams.
Agreed. I would really like to rip the session stuff out and replace it with stream based synchronization. I don't remember what it was that stopped me the last time I was looking at it. Cheers, -- Nikodemus
participants (3)
-
Helmut Eller
-
Nikodemus Siivola
-
Raymond Toy