This introduced more hacks than it should. In particular, the sequence about stack trace requesting became very messy. When we attach, we don't instantly get a stopped event. This required making the Pause command actually work (sort of). In this case we often won't have a proper current thread. Instead we sort of request all threads whenever we get a thread event, thought his is horribly hacky and we should really just use the thread event as-is. We then attempt to pause ALL threads on pause and continue requests when we don't know the current thread. Another issue is that when pausing it's likely we don't have the source location info for the pause location (something like select() or whatever), so we only set the current frame to the lowest one we have source for. This sort of roughly matches what you want. This whole thing makes it clear that threads and stack trace in separate panes makes no sense. We need to replicate the hierarchy in the variables view for threads and stack traces. |
||
|---|---|---|
| .. | ||
| vimspector | ||