Replies: 5 comments 3 replies
-
The issue, as you pointed out, is that the Debugger Listing and the Code Browser Listing are not both in the same tool in our configuration. We make both use the same key binding so that if the user changes it for one tool, it will work in the other tool. A tool is simply a collection of plugins. Users can create their own tools and add plugins they like to them. This allows users to have different tools for different type of tasks, if they wish. I'd venture a guess that almost no users create custom tools. We ship pre-built tools for major features, such as the Debugger and Version Tracking. As I mentioned, we have written the Debugger Listing and the Code Browser Listing share the same key binding out of convenience for the user. There is no easy way for you to change this behavior. If you really wish to use both Listings in one tool, then you have to accept this current limitation (choosing the desired Listing in the dialog you have shown above each time you press the key binding). |
Beta Was this translation helpful? Give feedback.
-
@msm-cert Can I ask why you have both plugins in the tool? There's very little difference in the functionality. I'm wondering what the inclusion of the Code Browser in the tool is buying you. |
Beta Was this translation helpful? Give feedback.
-
You certainly can create custom actions yourself via a plugin. You can create an action to open the Debugger Listing and an action to open the Code Browser Listing. With two separate actions, you can make the keybindings be whatever you like. If this is what you were describing, then this should work.
'Convoluted' is a harsh word. We certainly did not intend for users to make a super tool like this, but the desire makes sense to me, as this is how some other non-Ghidra apps work. If you make a super tool, there will be workflow issues like you mention here, since we have not tested and fixed issues like that. I will leave it up to @d-millar to answer as to what the best workflow should be for your situation. |
Beta Was this translation helpful? Give feedback.
-
I get where you're coming from on this, but you should probably think of the Debugger Listing as a Code Browser with some plumbing for debugging / emulation. Given this, there are a couple of ways for you to proceed. One would be to default to using either the Debugger Tool or the Emulator Tool as your "Code Browser". That said, either of those might be a little cluttered for your tastes. If it were me, I would make a copy of the Emulator Tool and configure it by eliminating anything I thought was extraneous to my workflow. Alternatively, you could make a copy of the CodeBrowser Tool and add the Debugger/Emulator features you wanted (or just use your super-tool) and remove the CodeBrowser plugin. I think the former is more likely to work out-of-the-box, but either should be do-able. If either of those don't work, I'd actually like to know. There are probably relatively simple things we can do to address that. |
Beta Was this translation helpful? Give feedback.
-
Yeah that makes sense. Debugger/emulator being cluttered is not a problem, I already moved some windows ("dockable GUI components") around in my tool. I think I understand now where my problem was, and I understand better what "Debugger Listing" is. I'll try with the approach you suggested. If I encounter any problems I'll let you know (but that sounds like a solid plan that should work). I hope that's OK for me to close the discussion, as i think everything's clear now. Thanks again. |
Beta Was this translation helpful? Give feedback.
-
Hi!
Recently I'm working on improving my Ghidra configuration (and even releasing some plugins). But since I don't fully get the concept of "tools", I prefer to have all the options available in my main window.
Hence my question: I have a shortcut to open listing window configured. If both DebuggerListingPlugin and CodeBrowserPlugin are enabled, then that shortcut conflicts. This is a single action, so i can't configure different keybindings:
Keybindings page confirms that only a single action (from two plugins) is mapped to this keybinding:
But when I press that combination:
Is there a standard workaround for this? I like my current configuration (for example, I can do quick emulation of an interesting fragment without switching tools), but a lack of listing keybinding is an issue for me.
(I guess I can make my own Ghidra module that exposes this action with a different keybinding, but that feels like an overkill for what should be a simple configuration change).
Beta Was this translation helpful? Give feedback.
All reactions