Page MenuHomePhabricator

MrHate (Gongyu Deng)
User

Projects

User does not belong to any projects.

User Details

User Since
Feb 26 2020, 5:19 PM (13 w, 4 d)

Recent Activity

Thu, May 28

MrHate created D80775: [lldb] tab completion for `command script delete'.
Thu, May 28, 7:47 PM · Restricted Project
MrHate created D80700: [lldb] complete `process attach -p` with PIDs.
Thu, May 28, 2:40 AM · Restricted Project

Wed, May 27

MrHate created D80693: [lldb] tab completion for breakpoint names.
Wed, May 27, 11:57 PM · Restricted Project
MrHate added a comment to D79929: [lldb] Tab completion for process plugin name.

That does make sense. I will split it into eArgTypeProcessPlugin and eArgTypeDisassemblePlugin along with the corresponding completion function names at the time I implement the disassemble related completion function.

Wed, May 27, 6:34 PM · Restricted Project
MrHate updated the diff for D80447: [lldb] Fix a potential bug that may cause assert failure in CommandObject::CheckRequirements.
Wed, May 27, 4:49 AM · Restricted Project

Sun, May 24

MrHate updated the diff for D79887: [lldb] Tab completion for process load/unload.

Maybe we can skip the unified requirements checking now, coz it has got many things to deal with.
Added back the local checking here.

Sun, May 24, 1:34 AM · Restricted Project

Fri, May 22

MrHate updated the diff for D80447: [lldb] Fix a potential bug that may cause assert failure in CommandObject::CheckRequirements.

Thanks very much Jonas for pointing out my carelessness! And with your RAII idea, I think we can use the smart pointer to simulate the defer thing.

Fri, May 22, 8:53 PM · Restricted Project
MrHate created D80447: [lldb] Fix a potential bug that may cause assert failure in CommandObject::CheckRequirements.
Fri, May 22, 10:10 AM · Restricted Project
MrHate updated the diff for D79929: [lldb] Tab completion for process plugin name.
  1. Removed PID completion from this patch;
  2. Removed the first empty lines for cases;
  3. Modified the title and the summary.
Fri, May 22, 8:34 AM · Restricted Project
MrHate added a comment to D79929: [lldb] Tab completion for process plugin name.

I think the two completions here are not related to each other? If yes, I think this should be two reviews/commits. Especially since the plugin completions is good to go, but the PID test should probably test that we get *some* pid back (so that test requires some small changes).

Fri, May 22, 6:23 AM · Restricted Project

Sun, May 17

MrHate updated the diff for D79887: [lldb] Tab completion for process load/unload.

Removed local requirements checking. Added periods.

Sun, May 17, 2:40 AM · Restricted Project

Thu, May 14

MrHate created D79929: [lldb] Tab completion for process plugin name.
Thu, May 14, 3:10 AM · Restricted Project

Wed, May 13

MrHate added a comment to D79722: Correct the argument list of command `breakpoint read`.

Sounds that the breakpoint-id completion needs to be improved in the future. Thanks for pointing this out!

Wed, May 13, 8:11 PM · Restricted Project
MrHate added a comment to D79722: Correct the argument list of command `breakpoint read`.

I'm not sure I agree with you. If the workflow is that you use "break list --filename" to see what is in the saved breakpoint file - which would presumably produce exactly the same listing as "break list" with any other specifier would - then it would be very natural to expect that you pick out of the list results in "break read" exactly as you would other breakpoint commands.

For instance, it would be weird if 1-4 works or specifying them by name worked for other breakpoint commands but not for "break read". So I think this is a distinction without a difference.

That said, the code to use them is not present, and they will be trivial to re-add if/when somebody gets around to finishing this. So I have no objection to removing them now.

Wed, May 13, 11:25 AM · Restricted Project
MrHate created D79887: [lldb] Tab completion for process load/unload.
Wed, May 13, 10:50 AM · Restricted Project

Tue, May 12

MrHate added a comment to D79722: Correct the argument list of command `breakpoint read`.

It is fine to take this out for now. I didn't get to finish this when I was last working on it. In the finished design you would say:

(lldb) breakpoint list --file savedBreakpoints.txt
(1) file: foo.c line:12
(2) someInterestingSymbol
...
(lldb) breakpoint read --file savedBreakpoints.txt 1

To only read in specific breakpoints from the saved file. That 's not much use till you can list what's in a file without importing it, so the breakpoint id's are not currently used.

Tue, May 12, 11:49 AM · Restricted Project

Mon, May 11

MrHate created D79722: Correct the argument list of command `breakpoint read`.
Mon, May 11, 9:39 AM · Restricted Project

Sat, May 9

MrHate created D79686: Tab completion for breakpoint write and breakpoint name add/delete.
Sat, May 9, 11:23 PM · Restricted Project
MrHate added a parent revision for D79686: Tab completion for breakpoint write and breakpoint name add/delete: D79666: Complete breakpoint enable/disable/delete/modify with a list of breakpoint IDs.
Sat, May 9, 11:23 PM · Restricted Project
MrHate added a child revision for D79666: Complete breakpoint enable/disable/delete/modify with a list of breakpoint IDs: D79686: Tab completion for breakpoint write and breakpoint name add/delete.
Sat, May 9, 11:23 PM · Restricted Project
MrHate updated the diff for D79666: Complete breakpoint enable/disable/delete/modify with a list of breakpoint IDs.

Thank you for your advice Jonas.
Btw, I also modified the raw Breakpoint pointer to be a BreakpointSP.

Sat, May 9, 7:40 PM · Restricted Project
MrHate created D79666: Complete breakpoint enable/disable/delete/modify with a list of breakpoint IDs.
Sat, May 9, 2:37 AM · Restricted Project

Wed, May 6

MrHate updated the diff for D79490: tab completion for register read/write.
  1. shortened lines in TestCompletion.py and CommandCompletions.cpp
  2. set eRegisterCompletion to (1u << 9) while eCustomCompletion to (1u << 10)
Wed, May 6, 10:13 AM · Restricted Project
MrHate added a reviewer for D79490: tab completion for register read/write: JDevlieghere.
Wed, May 6, 9:40 AM · Restricted Project
MrHate created D79490: tab completion for register read/write.
Wed, May 6, 6:57 AM · Restricted Project

Mar 6 2020

MrHate updated the diff for D75418: tab completion for process signal.

Added a test case where test "process signal" without a running process.

Mar 6 2020, 10:28 AM · Restricted Project

Mar 4 2020

MrHate updated the diff for D75597: Update the current execution context at the beginning of tab completions.

Added comments about the new version test for command frame variable.

Mar 4 2020, 6:44 AM · Restricted Project
MrHate updated the summary of D75597: Update the current execution context at the beginning of tab completions.
Mar 4 2020, 6:11 AM · Restricted Project
MrHate updated the diff for D75597: Update the current execution context at the beginning of tab completions.

Modified the test for frame variable so that it will not execute frame variable before completion test.
Added m_exe_ctx.Clear() at the end of CommandObject::HandleCompletion to ensure that nothing will be stored in m_exe_ctx between running commands.

Mar 4 2020, 5:39 AM · Restricted Project
MrHate added a comment to D75597: Update the current execution context at the beginning of tab completions.

Thanks labath, for noting me about my missing test and Cleanup()!
For the test, my idea is to modify the original test for frame variable to make it not run frame variable before completion.
For the Cleanup(), I've checked the related code. It seems that Cleanup() is used to clear m_exe_ctx ( by calling its member function Clear() ) and release m_api_locker. From the comment at the beginning of CheckRequirements(), it says "Every command should call CommandObject::Cleanup() after it has completed." and we can find that Cleanup() appears only at the end of Execute(). But from CommandInterpreter::GetExecutionContext, ExecutionContextRef::Lock and ExecutionContext::ExecutionContext(const ExecutionContextRef*, bool) we can know that, this process is just assignments on smart pointers. So I think using m_exe_ctx.Clear() here might be better.

Mar 4 2020, 5:39 AM · Restricted Project
MrHate created D75597: Update the current execution context at the beginning of tab completions.
Mar 4 2020, 12:39 AM · Restricted Project
MrHate added a parent revision for D75418: tab completion for process signal: D75597: Update the current execution context at the beginning of tab completions.
Mar 4 2020, 12:39 AM · Restricted Project
MrHate added a child revision for D75597: Update the current execution context at the beginning of tab completions: D75418: tab completion for process signal.
Mar 4 2020, 12:39 AM · Restricted Project

Mar 3 2020

MrHate updated the diff for D75418: tab completion for process signal.

Removed individual execution context updating.

Mar 3 2020, 7:37 PM · Restricted Project

Mar 2 2020

MrHate updated the diff for D75418: tab completion for process signal.

removed unnecessary assignment in test

Mar 2 2020, 10:25 PM · Restricted Project
MrHate updated the diff for D75418: tab completion for process signal.

Update the current execution context, then get signals from the current process.

Mar 2 2020, 9:25 PM · Restricted Project
MrHate added a comment to D75418: tab completion for process signal.

Thanks for pointing out my misunderstanding on the Unix signals, and fetching the list of valid signals from backend is always a better way indeed.
However, getting the current process from the current context m_exe_ctx which is got from m_interpreter will cause an issue that the completion won't be triggered before executing some process commands.
This is similar to frame variable cause these two commands both work on the base of the current context from m_interpreter.
In order to process completion successfully whenever we've got a valid process, I will update the current execution context both in m_interpreter and the current command object.
But what I am worried about is whether a new issue would be caused due to updating the current execution context.

Mar 2 2020, 9:22 PM · Restricted Project

Feb 29 2020

MrHate created D75418: tab completion for process signal.
Feb 29 2020, 8:53 PM · Restricted Project