Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Usability enhancements #5

Open
15 of 23 tasks
gsmcmullin opened this issue Oct 15, 2016 · 9 comments
Open
15 of 23 tasks

Usability enhancements #5

gsmcmullin opened this issue Oct 15, 2016 · 9 comments

Comments

@gsmcmullin
Copy link
Owner

gsmcmullin commented Oct 15, 2016

CLI

  • Resizable panel
  • Enter should repeat last command
  • Support command history
  • Hide CLI input when not available
  • Grab focus after single stepping from CLI

Config

  • Select GDB from dropdown
  • Select target binary from file chooser
  • Read GDB init commands from .gdbinit
  • Validate config on dialog acceptance

Feedback from GDB

  • Report errors on connect or in init commands
  • Report errors on failed user commands (from key binding)
  • Report reason for target exit and maybe stop
  • Report exit code on normal target exit
  • Provide feedback when target ignores SIGINT

Variable watch view

  • Indicate out-of-scope variables in watch view
  • Indicate hit watchpoint in watch view
  • ~~~Highlight parents of changed values in tree~~~
  • ~~~Expand collapsed branches in hidden watchpoints are hit~~~
  • Allow selection of format (hex, decimal, etc) for displayed values

Editor integration

  • Popup hover values in tooltip style rather than workspace notifications.
  • Add a shortcut to watch an expression from the editor
  • Add context menu to watch expressions
  • Add context menu to set breakpoints
@gsmcmullin
Copy link
Owner Author

gsmcmullin commented Oct 20, 2016

Integrated debug side panel

  • Create new resizable side panel
  • Move toolbar to new debug panel
  • Make individual views collapsable/hidable
  • Add global config option for side to attach

Views integrated

  • Variable watch view
  • Stack backtrace
  • Thread list
  • Local and/or argument variables
  • Breakpoint list

Screenshots for reference

Visual Studio Code GDB
debugging-all-up-visual-studio
XCode
screen-shot-2016-10-18-at-1 24 53-pm
It was agreed the Eclipse and Code::blocks are not examples worth emulating

@f4814
Copy link

f4814 commented Oct 23, 2016

I think the F11 button is a really bad choice, b/c it toggles the fullscreenmode on most systems...

@gsmcmullin
Copy link
Owner Author

The default key bindings are copied from Visual Studio Code: https://code.visualstudio.com/Docs/customization/keybindings#_debug

We can of course change them if there are more sensible defaults. Do you have a suggestion?

Also, users can configure their own key bindings in Atom. Everyone is going to have different preferences, but it's desirable to have is usable out-of-the-box. All actions in atom-gdb-debugger are available through Atom's command system and can be bound to whatever keys the user prefers.

@f4814
Copy link

f4814 commented Oct 23, 2016

I know the possibility of creating own keybindings files, but I think overwriting an shortcut as important as F11 is not a good idea anyway...
Using F8, F9, and F10 instead of F9 F10 F11 would be better on my System

@esden
Copy link
Contributor

esden commented Oct 23, 2016

There is always a combination that will not work for someone. I disagree with your premise. I think staying compatible to other packages like visual studio code is more important than the fullscreen button. I am sure the VSC people thought about it, I think this is the same binding as visual studio and eclipse but I would need to check. Having our plugin be just slightly different binding than others will definitely make people familiar with those packages very angry. (like having a qwertz and qwerty keyboards)

And as mentioned before if it does not work for you, you can change the binding. (I disagree that fullscreen button is important in the first place, as I do not use it myself :D "do you see what I did there?" )

@cwoodall
Copy link

I am very interested in the ability to load form .gdbinit files in the project root. Possibly interested in helping with that contribution

@gsmcmullin
Copy link
Owner Author

Hi @cwoodall

The easiest way to do this is to put the command source .gdbinit in the startup commands in the dialog.

Because we're using the MI interface to GDB, we have to feed in CLI commands using -interpreter-exec which causes problems with commands that read further input like define or commands which you may have in your .gdbinit file

@cwoodall
Copy link

@gsmcmullin Awesome!

@aumars
Copy link

aumars commented Sep 17, 2017

The text in the panel should also be wrapped, otherwise it looks like this:

screenshot from 2017-09-17 18-18-06

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants