atom-gdb-debugger icon indicating copy to clipboard operation
atom-gdb-debugger copied to clipboard

Usability enhancements

Open gsmcmullin opened this issue 8 years ago • 9 comments

CLI

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

Config

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

Feedback from GDB

  • [x] Report errors on connect or in init commands
  • [x] 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

  • [x] Indicate out-of-scope variables in watch view
  • [x] Indicate hit watchpoint in watch view
  • [x] ~~~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
  • [x] Add context menu to watch expressions
  • [x] Add context menu to set breakpoints

gsmcmullin avatar Oct 15 '16 11:10 gsmcmullin

Integrated debug side panel

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

Views integrated

  • [x] Variable watch view
  • [x] Stack backtrace
  • [x] Thread list
  • [x] Local and/or argument variables
  • [x] 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

gsmcmullin avatar Oct 20 '16 00:10 gsmcmullin

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

f4814 avatar Oct 23 '16 18:10 f4814

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.

gsmcmullin avatar Oct 23 '16 18:10 gsmcmullin

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

f4814 avatar Oct 23 '16 18:10 f4814

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?" )

esden avatar Oct 23 '16 19:10 esden

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

cwoodall avatar Dec 21 '16 20:12 cwoodall

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

gsmcmullin avatar Dec 21 '16 20:12 gsmcmullin

@gsmcmullin Awesome!

cwoodall avatar Dec 22 '16 00:12 cwoodall

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

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

aumars avatar Sep 17 '17 16:09 aumars