Page MenuHomePhabricator

OmarEmaraDev (Omar Emara)
User

Projects

User does not belong to any projects.

User Details

User Since
Apr 9 2021, 7:57 AM (102 w, 6 d)

Recent Activity

Sep 6 2021

OmarEmaraDev added a comment to D108944: [LLDB][GUI] Add source file searcher.

@clayborg Did you take a look at this?

Sep 6 2021, 5:47 AM · Restricted Project

Aug 30 2021

OmarEmaraDev added a comment to D108944: [LLDB][GUI] Add source file searcher.

An example typical workflow for navigating to a file and adding a breakpoint.

Aug 30 2021, 1:28 PM · Restricted Project
OmarEmaraDev requested review of D108944: [LLDB][GUI] Add source file searcher.
Aug 30 2021, 1:26 PM · Restricted Project

Aug 25 2021

OmarEmaraDev added a comment to D108545: [LLDB][GUI] Add initial searcher support.

@clayborg I see a number of issues with using forms directly:

Aug 25 2021, 1:28 AM · Restricted Project

Aug 24 2021

OmarEmaraDev added inline comments to D108545: [LLDB][GUI] Add initial searcher support.
Aug 24 2021, 9:07 AM · Restricted Project
OmarEmaraDev added a comment to D108545: [LLDB][GUI] Add initial searcher support.

@clayborg I was planning on getting to field completion later as part of a global "context window" feature. There are reasons why I need this as a full separate window for now. Imminently, I am creating an operator that changes the file in the sources window so that breakpoints can be inserted manually. So once the user press Ctrl+F, a search window will appear where the user can choose a source file to navigate to. This will require a custom searcher, and not the common searcher implemented above, which I will add in a following patch. What do you think?

Aug 24 2021, 1:52 AM · Restricted Project

Aug 23 2021

OmarEmaraDev added a comment to D108545: [LLDB][GUI] Add initial searcher support.

An example searcher window for source files:

Aug 23 2021, 5:15 AM · Restricted Project
OmarEmaraDev requested review of D108545: [LLDB][GUI] Add initial searcher support.
Aug 23 2021, 5:11 AM · Restricted Project

Aug 19 2021

OmarEmaraDev requested review of D108414: [LLDB][GUI] Handle extra navigation keys in forms.
Aug 19 2021, 3:08 PM · Restricted Project
OmarEmaraDev requested review of D108410: [LLDB][GUI] Add submit form key combination.
Aug 19 2021, 2:10 PM · Restricted Project
OmarEmaraDev updated the summary of D108385: [LLDB][GUI] Add extra keys to text field.
Aug 19 2021, 9:34 AM · Restricted Project
OmarEmaraDev requested review of D108385: [LLDB][GUI] Add extra keys to text field.
Aug 19 2021, 9:34 AM · Restricted Project

Aug 18 2021

OmarEmaraDev requested review of D108331: [LLDB][GUI] Handle return key for compound fields.
Aug 18 2021, 2:45 PM · Restricted Project
OmarEmaraDev requested review of D108327: [LLDB][GUI] Fix text field incorrect key handling.
Aug 18 2021, 1:32 PM · Restricted Project
OmarEmaraDev updated the diff for D107869: [LLDB][GUI] Add Process Launch form.
  • Address review
Aug 18 2021, 4:13 AM · Restricted Project

Aug 16 2021

OmarEmaraDev added a comment to D107761: [LLDB][GUI] Refactor form drawing using subsurfaces.

@clayborg Perhaps you missed this, it is essential the same as D107182 but without the unsupported function. It would be good to have this committed.

Aug 16 2021, 12:20 PM · Restricted Project

Aug 12 2021

OmarEmaraDev updated the diff for D107869: [LLDB][GUI] Add Process Launch form.
  • Separate environment field into two fields.
Aug 12 2021, 4:05 AM · Restricted Project
OmarEmaraDev added a comment to D107869: [LLDB][GUI] Add Process Launch form.

Adding a boolean for inheriting the environment may not be necessary, we can just add two environment fields, one for inherited and one for user specified. The inherited one will be put in advanced settings with another boolean that show or hide the field. Both will be filled with the appropriate default values. What do you think?

Aug 12 2021, 1:22 AM · Restricted Project
OmarEmaraDev added inline comments to D107869: [LLDB][GUI] Add Process Launch form.
Aug 12 2021, 1:17 AM · Restricted Project

Aug 11 2021

OmarEmaraDev updated the diff for D107869: [LLDB][GUI] Add Process Launch form.
  • Address review.
Aug 11 2021, 12:49 PM · Restricted Project
OmarEmaraDev added a comment to D107869: [LLDB][GUI] Add Process Launch form.

@jingham I wasn't arguing that we should remove those environment variables, on the contrary. Greg was suggesting that we populate the environment field with the target environment instead of implicitly adding them to the environment of the launch info. The problem with that is that there is a large number of environments that gets added (15 in my case) as shown in the following screenshot. What I was saying in my comment above is that I don't think we should show those to the user, we should transparently add them instead and let the user add additional variables as needed. We can then look into adding other settings to exclude them if necessary.

Aug 11 2021, 12:07 PM · Restricted Project
OmarEmaraDev added a comment to D107869: [LLDB][GUI] Add Process Launch form.

One thing to note as well is that the target environment seem to include many environment variables like PATH and HOME, I don't think those should be included.

Aug 11 2021, 11:12 AM · Restricted Project
OmarEmaraDev added inline comments to D107869: [LLDB][GUI] Add Process Launch form.
Aug 11 2021, 1:14 AM · Restricted Project

Aug 10 2021

OmarEmaraDev added a comment to D107869: [LLDB][GUI] Add Process Launch form.

This is not fully working yet, and I am still debugging it. But I thought I would push it for early feedback regardless.

Aug 10 2021, 2:33 PM · Restricted Project
OmarEmaraDev requested review of D107869: [LLDB][GUI] Add Process Launch form.
Aug 10 2021, 2:31 PM · Restricted Project

Aug 9 2021

OmarEmaraDev added a comment to D107386: [LLDB][GUI] Add Breakpoints window.

@clayborg This is unrelated to D107761, so it should be safe to commit.

Aug 9 2021, 10:31 AM · Restricted Project
OmarEmaraDev updated the diff for D107386: [LLDB][GUI] Add Breakpoints window.
  • Fix possible crash in SetText
Aug 9 2021, 10:29 AM · Restricted Project
OmarEmaraDev added a comment to D107761: [LLDB][GUI] Refactor form drawing using subsurfaces.

This is a reimplementation of D107182, which was committed and then reverted because the is_pad function is not universally supported. The updated patch adds an explicit type member to identify the backing object of the surface.

Aug 9 2021, 5:41 AM · Restricted Project
OmarEmaraDev requested review of D107761: [LLDB][GUI] Refactor form drawing using subsurfaces.
Aug 9 2021, 5:38 AM · Restricted Project
OmarEmaraDev added a comment to D107386: [LLDB][GUI] Add Breakpoints window.

@jingham I see. Thanks!

Aug 9 2021, 4:04 AM · Restricted Project
OmarEmaraDev updated the diff for D107386: [LLDB][GUI] Add Breakpoints window.
  • Address review
Aug 9 2021, 4:00 AM · Restricted Project

Aug 6 2021

OmarEmaraDev added a comment to D107386: [LLDB][GUI] Add Breakpoints window.

@clayborg With you suggestions it currently looks like this. The concern I have is that lines are now 36 characters longer, and some important information are now truncated. The breakpoint and breakpoint locations IDs seems to be just the index of the objects in the tree, are they not? In this case, they seem redundant to me. Similarly, the address takes a lot of space and is included in the next level of details, so it might not be as important to include in this level either.

Aug 6 2021, 2:05 PM · Restricted Project
OmarEmaraDev added a comment to D107182: [LLDB][GUI] Refactor form drawing using subsurfaces.

@jasonmolenda Okay, I will just reimplement the patch without is_pad somehow.

Aug 6 2021, 2:15 AM · Restricted Project
OmarEmaraDev added a comment to D107182: [LLDB][GUI] Refactor form drawing using subsurfaces.

is_pad was added in 2009 in ncurses 5.7 - patch 20090906. So it is sufficiently old to be used, is it not?

Aug 6 2021, 1:09 AM · Restricted Project
OmarEmaraDev added a comment to D107182: [LLDB][GUI] Refactor form drawing using subsurfaces.

@jasonmolenda is_pad is defined by ncurses. According to the man page, it is an extension that is not supported on Version 7, BSD or System V implementations., but that shouldn't be a problem as far as I know. Can you maybe check the ncurses header and see if it is there?

Aug 6 2021, 12:31 AM · Restricted Project

Aug 5 2021

OmarEmaraDev added a comment to D107386: [LLDB][GUI] Add Breakpoints window.

@clayborg What do you think? Should we add another tree level with more details or do something else?

Aug 5 2021, 9:35 AM · Restricted Project

Aug 3 2021

OmarEmaraDev added a comment to D107386: [LLDB][GUI] Add Breakpoints window.

I faced a bit of difficulty in this patch, so it is not exactly complete. One issue is that breakpoint descriptions can be very long, I tried to implemented multiline items to workaround this, but that didn't work out and was a waste of time. For now, I just tried to keep descriptions as small as possible. One thing I want to try now is to simply add another tree level and add all necessary information there, similar to verbose breakpoint description.
This is also missing the breakpoint operators, like enabling and disabling breakpoints. Since the window doesn't delegate key handing to the items, this will have to be implemented first.

Aug 3 2021, 12:11 PM · Restricted Project
OmarEmaraDev requested review of D107386: [LLDB][GUI] Add Breakpoints window.
Aug 3 2021, 12:03 PM · Restricted Project

Jul 30 2021

OmarEmaraDev requested review of D107182: [LLDB][GUI] Refactor form drawing using subsurfaces.
Jul 30 2021, 10:23 AM · Restricted Project

Jul 29 2021

OmarEmaraDev added a comment to D106999: [LLDB][GUI] Add Environment Variable Field.

I generalized the implementation as suggested and added a ready to use list version of the field.

Jul 29 2021, 6:39 AM · Restricted Project
OmarEmaraDev updated the diff for D106999: [LLDB][GUI] Add Environment Variable Field.
  • Generalize the implementation to any Mapping field
Jul 29 2021, 6:37 AM · Restricted Project

Jul 28 2021

OmarEmaraDev added a comment to D106999: [LLDB][GUI] Add Environment Variable Field.

Example list of environment fields:

Jul 28 2021, 1:22 PM · Restricted Project
OmarEmaraDev requested review of D106999: [LLDB][GUI] Add Environment Variable Field.
Jul 28 2021, 1:21 PM · Restricted Project
OmarEmaraDev updated the diff for D106192: [LLDB][GUI] Add Create Target form.
  • Address review comments
Jul 28 2021, 10:44 AM · Restricted Project

Jul 27 2021

OmarEmaraDev added a comment to D106192: [LLDB][GUI] Add Create Target form.

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:

Jul 27 2021, 2:39 PM · Restricted Project
OmarEmaraDev updated the diff for D106192: [LLDB][GUI] Add Create Target form.
  • Rebase on main.
  • Add basic remote debugging support.
Jul 27 2021, 2:38 PM · Restricted Project
OmarEmaraDev added a comment to D106873: [lldb] Bump the amount of characters printed on pexpect failures from 100 to 2000.

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.

Jul 27 2021, 8:22 AM · Restricted Project

Jul 26 2021

OmarEmaraDev added a comment to D106553: [LLDB][GUI] Resolve paths in file/directory fields.

@clayborg Did you check D106564? This is the last patch needed to do the rebase.

Jul 26 2021, 12:07 PM · Restricted Project

Jul 24 2021

OmarEmaraDev added inline comments to D106553: [LLDB][GUI] Resolve paths in file/directory fields.
Jul 24 2021, 12:41 AM · Restricted Project

Jul 22 2021

OmarEmaraDev requested review of D106564: [LLDB][GUI] Add Arch Field.
Jul 22 2021, 8:29 AM · Restricted Project
OmarEmaraDev requested review of D106553: [LLDB][GUI] Resolve paths in file/directory fields.
Jul 22 2021, 8:09 AM · Restricted Project
OmarEmaraDev updated the diff for D106459: [LLDB][GUI] Check fields validity in actions.
  • Merge main and fix conflicts.
Jul 22 2021, 5:33 AM · Restricted Project
OmarEmaraDev updated the diff for D106483: [LLDB][GUI] Add Platform Plugin Field.
  • Rebase on main and fix conflicts.
Jul 22 2021, 4:45 AM · Restricted Project

Jul 21 2021

OmarEmaraDev updated the diff for D106458: [LLDB][GUI] Add required property to text fields.
  • Remove default arguments
Jul 21 2021, 1:10 PM · Restricted Project
OmarEmaraDev added a comment to D106192: [LLDB][GUI] Add Create Target form.

Are you going to land the other smaller diffs first and then update this one after hey have landed?

Jul 21 2021, 12:57 PM · Restricted Project
OmarEmaraDev requested review of D106483: [LLDB][GUI] Add Platform Plugin Field.
Jul 21 2021, 12:54 PM · Restricted Project
OmarEmaraDev requested review of D106467: [LLDB][GUI] Add Process Plugin Field.
Jul 21 2021, 11:02 AM · Restricted Project
OmarEmaraDev added a comment to D106192: [LLDB][GUI] Add Create Target form.

Thanks @DavidSpickett! I will look into this and let you know how it goes.

Jul 21 2021, 10:37 AM · Restricted Project
OmarEmaraDev added a comment to D106192: [LLDB][GUI] Add Create Target form.

I am currently breaking this patch into smaller independent viable patches as suggested.

Jul 21 2021, 10:36 AM · Restricted Project
OmarEmaraDev requested review of D106459: [LLDB][GUI] Check fields validity in actions.
Jul 21 2021, 10:01 AM · Restricted Project
OmarEmaraDev requested review of D106458: [LLDB][GUI] Add required property to text fields.
Jul 21 2021, 10:00 AM · Restricted Project

Jul 16 2021

OmarEmaraDev added a comment to D106192: [LLDB][GUI] Add Create Target form.

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.

Jul 16 2021, 2:24 PM · Restricted Project
OmarEmaraDev requested review of D106192: [LLDB][GUI] Add Create Target form.
Jul 16 2021, 2:21 PM · Restricted Project

Jul 14 2021

OmarEmaraDev added inline comments to D105655: [LLDB][GUI] Add Process Attach form.
Jul 14 2021, 3:23 PM · Restricted Project
OmarEmaraDev updated the diff for D105655: [LLDB][GUI] Add Process Attach form.
  • Manually continue if needed.
Jul 14 2021, 3:23 PM · Restricted Project

Jul 13 2021

OmarEmaraDev added a comment to D105655: [LLDB][GUI] Add Process Attach form.

Two actions with an option:

Jul 13 2021, 12:55 PM · Restricted Project
OmarEmaraDev updated the diff for D105655: [LLDB][GUI] Add Process Attach form.
  • 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.
Jul 13 2021, 12:54 PM · Restricted Project
OmarEmaraDev added a comment to D105655: [LLDB][GUI] Add Process Attach form.

Updated UI:

Jul 13 2021, 8:09 AM · Restricted Project
OmarEmaraDev updated the diff for D105655: [LLDB][GUI] Add Process Attach form.
  • Add kill/detach form.
  • Fix forms with no fields.
Jul 13 2021, 8:04 AM · Restricted Project
OmarEmaraDev planned changes to D105655: [LLDB][GUI] Add Process Attach form.

Currently working on the detach/kill form.

Jul 13 2021, 4:09 AM · Restricted Project
OmarEmaraDev updated the diff for D105655: [LLDB][GUI] Add Process Attach 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.
Jul 13 2021, 4:07 AM · Restricted Project

Jul 8 2021

OmarEmaraDev added a comment to D105655: [LLDB][GUI] Add Process Attach form.

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?

Jul 8 2021, 1:45 PM · Restricted Project
OmarEmaraDev requested review of D105655: [LLDB][GUI] Add Process Attach form.
Jul 8 2021, 1:32 PM · Restricted Project

Jul 2 2021

OmarEmaraDev updated the summary of D104395: [LLDB][GUI] Add initial forms support.
Jul 2 2021, 7:32 AM · Restricted Project

Jun 30 2021

OmarEmaraDev requested review of D104395: [LLDB][GUI] Add initial forms support.
Jun 30 2021, 1:13 PM · Restricted Project
OmarEmaraDev added a comment to D104395: [LLDB][GUI] Add initial forms support.

Full example:

Jun 30 2021, 1:12 PM · Restricted Project
OmarEmaraDev updated the diff for D104395: [LLDB][GUI] Add initial forms support.
  • Add contextual scrolling support.
Jun 30 2021, 1:07 PM · Restricted Project

Jun 29 2021

OmarEmaraDev planned changes to D104395: [LLDB][GUI] Add initial forms support.
  • 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.
Jun 29 2021, 2:18 PM · Restricted Project
OmarEmaraDev updated the diff for D104395: [LLDB][GUI] Add initial forms support.
  • 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 29 2021, 2:12 PM · Restricted Project

Jun 24 2021

OmarEmaraDev planned changes to D104395: [LLDB][GUI] Add initial forms support.

Not available in this patch yet:

  • Global error messages.
  • Contextual scrolling.
  • Action bar.
  • Auto completion.
Jun 24 2021, 2:47 PM · Restricted Project
OmarEmaraDev updated the diff for D104395: [LLDB][GUI] Add initial forms support.
  • 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 24 2021, 2:43 PM · Restricted Project

Jun 23 2021

OmarEmaraDev added a comment to D104395: [LLDB][GUI] Add initial forms support.

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 23 2021, 11:21 AM · Restricted Project

Jun 22 2021

OmarEmaraDev updated the diff for D104395: [LLDB][GUI] Add initial forms support.
  • Remove Field type and use FieldDelegate directly
Jun 22 2021, 2:02 PM · Restricted Project

Jun 18 2021

OmarEmaraDev added a comment to D104395: [LLDB][GUI] Add initial forms support.

@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.

Jun 18 2021, 1:42 PM · Restricted Project
OmarEmaraDev updated the diff for D104395: [LLDB][GUI] Add initial forms support.
  • Add form pages.
  • Handle review.
Jun 18 2021, 1:27 PM · Restricted Project

Jun 17 2021

OmarEmaraDev updated the diff for D104395: [LLDB][GUI] Add initial forms support.
  • Always scroll left on removing a character
Jun 17 2021, 10:11 AM · Restricted Project
OmarEmaraDev added inline comments to D104395: [LLDB][GUI] Add initial forms support.
Jun 17 2021, 9:31 AM · Restricted Project
OmarEmaraDev updated the diff for D104395: [LLDB][GUI] Add initial forms support.
  • Remove PutCStringTruncatedWidth, use a character limit instead.
  • Handle review.
Jun 17 2021, 9:29 AM · Restricted Project
OmarEmaraDev added a comment to D104395: [LLDB][GUI] Add initial forms support.

did you consider implementing each field as a Window?

Jun 17 2021, 4:14 AM · Restricted Project

Jun 16 2021

OmarEmaraDev added a comment to D104395: [LLDB][GUI] Add initial forms support.

An example form:

Jun 16 2021, 9:21 AM · Restricted Project
OmarEmaraDev requested review of D104395: [LLDB][GUI] Add initial forms support.
Jun 16 2021, 9:13 AM · Restricted Project

Jun 11 2021

OmarEmaraDev updated the diff for D100243: [LLDB][GUI] Expand selected thread tree item by default.
  • Handle review
Jun 11 2021, 1:28 PM · Restricted Project

Jun 10 2021

OmarEmaraDev added inline comments to D100243: [LLDB][GUI] Expand selected thread tree item by default.
Jun 10 2021, 2:25 PM · Restricted Project
OmarEmaraDev updated the diff for D100243: [LLDB][GUI] Expand selected thread tree item by default.
  • Merge branch 'main' into lldb-gui-expand-threads-tree
  • Implement default selection
Jun 10 2021, 2:23 PM · Restricted Project

Apr 20 2021

OmarEmaraDev added inline comments to D100243: [LLDB][GUI] Expand selected thread tree item by default.
Apr 20 2021, 6:43 AM · Restricted Project
OmarEmaraDev updated the diff for D100243: [LLDB][GUI] Expand selected thread tree item by default.
  • Follow LLVM coding guidelines
Apr 20 2021, 6:25 AM · Restricted Project

Apr 10 2021

OmarEmaraDev requested review of D100243: [LLDB][GUI] Expand selected thread tree item by default.
Apr 10 2021, 4:00 AM · Restricted Project