- User Since
- Apr 9 2021, 7:57 AM (15 w, 5 d)
Example list of environment fields:
- Address review comments
I still can't get remote debugging to work unfortunately, or maybe I don't understand it really. The way I understand it is as follows:
- Rebase on main.
- Add basic remote debugging support.
Note that all the GUI tests spawn a terminal of dimensions (100, 500), not the default (24,80). And I am guessing this includes the control characters as well. So even 2000 may not be enough even.
Mon, Jul 26
Sat, Jul 24
Thu, Jul 22
- Merge main and fix conflicts.
- Rebase on main and fix conflicts.
Wed, Jul 21
- Remove default arguments
Are you going to land the other smaller diffs first and then update this one after hey have landed?
Thanks @DavidSpickett! I will look into this and let you know how it goes.
I am currently breaking this patch into smaller independent viable patches as suggested.
Fri, Jul 16
This doesn't support remote files yet, I am still having trouble testing those. Also, there is also an unrelated clang-format change, not sure if I should revert it or keep it.
Wed, Jul 14
- Manually continue if needed.
Tue, Jul 13
Two actions with an option:
- Return raw pointers instead of unique ones.
- Add Show Advance Settings option.
- Allow detaching and killing at the same time.
- Allow detaching while keeping process stopped.
- Handle review comments.
- Add kill/detach form.
- Fix forms with no fields.
Currently working on the detach/kill form.
- Use unique pointers for field delegates.
- Fix typos in Select methods.
- Set the process name to the main executable name by default.
- Turn plugin name into a choice field.
- Update debugger target if a new one was created.
- Remove superfluous continue operation.
Thu, Jul 8
I initially created two forms for attach by name and attach by PID, because the options were divided between them. Today I tried to reimplement that such that it is a single form with a choices field at the top that determines if it is by name or PID. The fields are then shown or hidden based on that enum. Additionally, other fields can control the visibility of other fields, for instance, the "Include existing processes" field. I think it works fine and the UX looks good. Here is an example, what do you think?
Fri, Jul 2
Wed, Jun 30
- Add contextual scrolling support.
Tue, Jun 29
- Scrolling was temporarily removed from the patch. It was causing issues with fields that change in size. I will reimplement it as contextual scrolling directly.
- Action buttons weren't moved to the window border as discussed. The window border is already highlighted when the form is active, which makes highlighting and navigating fields not user friendly. Action buttons are now scrollable though, which solves the issue of space.
- Rewrite internal field navigation.
- Rewrite form window drawing. Form delegate no longer have drawing routines.
- Add global error messages.
- Add action bar. Form delegate can now define as many arbitrary actions as needed.
- Make action button scrollable.
- Add support for composite fields.
- Add backward tab navigation.
Jun 24 2021
Not available in this patch yet:
- Global error messages.
- Contextual scrolling.
- Action bar.
- Auto completion.
- Add Surface type.
- Add Pad and SubPad types.
- Implement dynamic scrolling.
- Implement per-field validation and error messages.
- Implement File field.
- Implement Directory field.
- Implement List field.
- Refactor field drawing.
Jun 23 2021
Since we are still working on this diff. I will add the other form functionality I have been working on here as well if you don't mind.
Jun 22 2021
- Remove Field type and use FieldDelegate directly
Jun 18 2021
@clayborg I tried implementing scrolling mechanisms as suggested. My first trial essentially defined a "visible area" rectangle which gets updated with every time the selection changes, then when it comes to drawing, each field checks if it is completely contained in the visible area and draws itself with an offset that we get from from the visible area origin. This worked, but fields that spans multiple columns can completely disappear leaving mostly no fields on the window, so it worked in most cases, but not all. My second trial was about drawing to an ncurses pad that is large enough to fit all contents, then the window is refreshed from that pad. This used manual ncurses calls because we don't support pads at the moment, so I scratched that for now. I think support for pads would be good for those kind of applications in the future. I plan to work on a proposal that would include support for pads and lightweight subwindows, I will detail that later.
- Add form pages.
- Handle review.
Jun 17 2021
- Always scroll left on removing a character
- Remove PutCStringTruncatedWidth, use a character limit instead.
- Handle review.
did you consider implementing each field as a Window?
Jun 16 2021
An example form:
Jun 11 2021
- Handle review
Jun 10 2021
- Merge branch 'main' into lldb-gui-expand-threads-tree
- Implement default selection
Apr 20 2021
- Follow LLVM coding guidelines