- changed component to backend
Support vanilla gdb
Issue #4
resolved
The backend currently requires rr. We can make it support vanilla gdb by skipping the "reverse-finish" operation if we're running in vanilla gdb; in that case, we would only produce execution information for the remainder of the current function (and so, if the user wanted execution information for an entire function call, they'd have to call it immediately after stepping into the function).
To implement this, the backend needs to be able to tell whether it's running inside rr or vanilla gdb. I've looked into this a bit, and found two options for doing this:
- Examine the prompt. rr changes the prompt from "(gdb)" to "(rr)". A plugin can query the prompt using |gdb.parameter("prompt")|. However, this method is not completely reliable, because a user can potentially change the prompt to anything by running |set prompt|.
- Try to instantiate |RRCmd|, which is a type exposed to plugins that exists in rr but not in gdb. If instantiation causes a |NameError| to be thrown, we know we're running in vanilla gdb.
Comments (2)
-
reporter -
reporter - changed status to resolved
Support running in vanilla gdb, not just rr (fixes
#4)→ <<cset ce582856b3be>>
- Log in to comment