airbus-cert / ttddbg

Time Travel Debugging IDA plugin
Apache License 2.0
553 stars 35 forks source link

Improve key bindings #6

Closed simsor closed 2 years ago

simsor commented 2 years ago

Currently, none of the new actions have any assigned key bindings. Have a look at assigning key bindings similar to the ones for the "normal" operations (F7 for Step Into, F8 for Step Over, F9 for Continue).

If possible, Ctrl+F7 for Single Step Backwards (already bound to Run Until Return, we might have to use Ctrl+F8), Ctrl+F9 for Continue Backwards.

simsor commented 2 years ago

To clarify: there is currently a static attribute in the action handlers called actionHotkey, which is set for the "Continue Backwards" and "Single Step Backwards" actions.

struct BackwardSingleStepRequest : public action_handler_t
{
    inline static const char* actionName = "ttddbg:BackwardSingle";
    inline static const char* actionLabel = "Single-step backwards";
    inline static const char* actionHotkey = "Ctrl+F8";

    virtual int idaapi activate(action_activation_ctx_t*) override;
    virtual action_state_t idaapi update(action_update_ctx_t*) override;
};

However, this attribute is not propagated to the instantiation of the actual action in ttddbg_plugin.hh:

OpenPositionChooserAction m_positionChooserAction;
const action_desc_t m_positionChooserActionDesc = ACTION_DESC_LITERAL_PLUGMOD(
    OpenPositionChooserAction::actionName,
    OpenPositionChooserAction::actionLabel,
    &m_positionChooserAction,
    this,
    nullptr,  // <-- shortcut should be here
    nullptr,
    185
);
simsor commented 2 years ago

Update: Ctrl+F9 is already bound to "Load C header file". I'm putting "Continue backwards" on Ctrl+F10