Hi!
I'm currently testing some multi-threading code, and sldb's behavior is pretty annoying in the following way:
Thread A is culprit of some error. It invokes the debugger. SLDB pops up.
Threads B,C etc. will also slide into an error condition because of A's failure. However that will happen peu a peu with some delay.
The result is that every few tenths of a second, a new SLDB buffer pops up for B,C, etc. with annoying consequences: a) input focus is stolen, b) window layout is changed, c) the interesting sldb buffer showing A's failure is shadowed all the time. So to do anything, you pretty much have to wait until some kind of equilibrium.
Ideally, I think what I'd like, is if Emacs windows had tabs, and the failures in B,C, etc. would just register a new tab (without selecting it). So there's only one SLDB per connection, but the sldb buffer contains multiple thread debugging states.
Now that does not seem to be possible with Emacs.
Can anyone think of a satisfiable alternative behavior?
How does Allegro's IDE / Lispworks' IDE handle this?
-T.
On 2/3/2010 8:20 AM, Tobias C. Rittweiler wrote:
Ideally, I think what I'd like, is if Emacs windows had tabs, and the failures in B,C, etc. would just register a new tab (without selecting it). So there's only one SLDB per connection, but the sldb buffer contains multiple thread debugging states. Now that does not seem to be possible with Emacs.
Have you looked at emacs-w3m? (http://emacs-w3m.namazu.org/) It has behavior similar to what you have described, namely, "tabs" are possible for each site being visited. When multiple tabs are loaded as a single, previously-saved "session", then the sites are visited simultaneously in separate "tabs" with only one tab being the "active" tab. Its code might provide some suggestions as to how this capability could be added to SLIME.
---