jingham accepted this revision.
jingham added a comment.
This revision is now accepted and ready to land.
That's great. There are a couple places where you use self.assertEqual(...,
False) where you can use self.assertFalse if you want. A very minor point...
Comment at:
pac
jingham added a comment.
That's great. Can you add a test that if you make a default SBVariableOption
and then flip the target setting you get the target's default value?
Repository:
rLLDB LLDB
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D55954/new/
https://reviews.llvm.org/D55954
jingham accepted this revision.
jingham added a comment.
This revision is now accepted and ready to land.
Excellent!
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D55954/new/
https://reviews.llvm.org/D55954
___
lldb-commits mailing list
lldb
jingham added a comment.
The only reservation I have is that this really ought to work correctly for
ObjC as well as C++, and there's code to support that, but it isn't tested. I
don't have time to write ObjC tests before the new year for sure. Is it
possible to rope somebody else into that?
jingham accepted this revision.
jingham added a comment.
That looks fine to me.
https://reviews.llvm.org/D46733
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
jingham added a comment.
For #2 we should be able to come up with something much more trivial than
pexpect (and thereby more reliable) because we really aren't expecting
patterns. We are always sending a complete string reading a complete string
back, then checking the string against some patt
jingham requested changes to this revision.
jingham added a comment.
This revision now requires changes to proceed.
The REPL is just a mode of the expression command. You invoke it by saying:
(lldb) expr --repl --
or you can add any other options to it that you want, including flags like -i
or
jingham added a comment.
Perhaps a better way to handle this is to think of REPL.cpp/h as adjuncts of
CommandObjectExpression.cpp/h - they mostly define the fancy IOHandler that
gets pushed when you run the command in this mode. I think it would be fine to
move them to Command, at which point
jingham added a subscriber: zturner.
jingham added a comment.
The expression command had two modes before introducing the REPL. You can do:
(lldb) expr -- some C expression
or you can do:
(lldb) expr
Enter expressions, then terminate with an empty line to evaluate:
1: first C expression
2
jingham requested changes to this revision.
jingham added a comment.
This revision now requires changes to proceed.
Adding an SB API to set the target's search paths seems fine to me. I think in
theory the totality of LLDB functionality should be available through the SB
API's, (a) because it i
jingham added a comment.
I worry when concerns of layering which seem a little artificial to me would
make us add a shadow class for something that is already well expressed as it
is. If you pass them as arguments, and then I add another useful one and want
to use it in both the regular and th
jingham requested changes to this revision.
jingham added a comment.
This revision now requires changes to proceed.
Sorry for coming in late (WWDC...) It does seem asymmetric to only have one
stepping API take an error. If one is going to they all should.
You need to add the new API to the SBT
jingham added a comment.
I agree with Leonard, for the StepOver overload that returns errors, just make
the mode parameter required. That will reduce confusion.
https://reviews.llvm.org/D47991
___
lldb-commits mailing list
lldb-commits@lists.llvm.
jingham accepted this revision.
jingham added a comment.
This looks fine to me. Nothing in the TypeSummaryOptions is relevant to
printing these numbers, so it's correct to ignore them.
Repository:
rL LLVM
https://reviews.llvm.org/D48114
___
lld
jingham added a comment.
SBTarget.Attach, and Launch take SBError references, and they are pretty well
tested. So I don't think that's a concern here.
We don't use the text content of error messages programmatically in lldb.
If you wanted to make these errors actionable, the low level LoadCore
jingham added a comment.
If you can get the address of the bad access from the signal, you could also
check that it was 0x0 and only suppress the SIGSEGV if it is?
Also, do you want to put in a setting to turn this behavior off? If the code
in any of the files of this type were to crash for so
jingham added a comment.
This is going as I imagined it should, looks great!
We probably want to turn this on by default for "frame var" or no one will ever
discover it. The IDE folks can decide on their own what to do from the SB
API's. Since you are doing module filtering and this only trig
jingham added a subscriber: clayborg.
jingham added a comment.
Thanks for the explanation!
Jim
https://reviews.llvm.org/D48177
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
jingham added a comment.
I think ultimately we should make this presentation of variables as symmetrical
with locals as we can or it's going to confuse users.
I don't think it is necessary for the first version. The first uses, I would
imagine, are to make available some variables in situation
jingham added a comment.
This code looks fine to me. The docs are a little thin.
You don't say how to make a recognizer anywhere except in the test example.
There should probably be an example in the long help for
CommandObjectFrameRecognizerAdd. Look for instance at the help for "breakpoint
jingham added a comment.
The SB API's tend to take SBError as an in/out parameter for the cases where
the function in question naturally returns some other value, and return an
SBError when there's no other logical return value.
So in these cases it would be more in line with the general practi
jingham added a comment.
Won't this break client code that was calling StepOver? We are pretty serious
about maintaining binary compatibility with the SB API's.
Jim
https://reviews.llvm.org/D47991
___
lldb-commits mailing list
lldb-commits@lists.
jingham added a comment.
The client won't be expecting a struct return, and will have generated code to
take a void return. If SBError happens to be returned in registers, nothing
bad will happen, but if it's returned on the stack, that would corrupt the
caller's stack. Relying on the particu
jingham accepted this revision.
jingham added a comment.
This revision is now accepted and ready to land.
That seems fine to me.
https://reviews.llvm.org/D47991
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/
jingham added subscribers: JDevlieghere, jingham.
jingham added a comment.
Yes, I really wish unittest2 allowed non-aborting tests. If you split up all
these tests, then you make the testsuite have to build and run some little
executable over and over. It would be so nice if there were a way t
jingham added a reviewer: clayborg.
jingham added a comment.
The IOHandlers are Greg's construct. He's likely the best person to review
this.
https://reviews.llvm.org/D48463
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.ll
jingham requested changes to this revision.
jingham added a comment.
This revision now requires changes to proceed.
This won't at all do what users expect in cases where the driver program
doesn't cooperate. For instance, when run under Xcode, the lldb process can
have many debuggers running co
jingham added a comment.
This behavior change seems desirable. But there are other commands that use
the IOHandlerActivated method to print instructions like this, and should get
the same treatment (breakpoint command add, type summary add...). It seems
ugly to have to do this one by one in i
jingham added a subscriber: kastiglione.
jingham added a comment.
Sure, that also sounds fine.
Jim
https://reviews.llvm.org/D48752
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
jingham added a comment.
This patch looks fine, I agree with Pavel the direction is good. It seems like
you would reduce a bunch of boiler-plate if you changed over
InvokeCommonCompletionCallbacks to take a CompletionRequest. Was there
something that blocked you from doing that?
https://rev
jingham accepted this revision.
jingham added a comment.
This revision is now accepted and ready to land.
Okay, sounds reasonable.
https://reviews.llvm.org/D48796
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bi
jingham added a comment.
Alex is right, lldb uses @param everywhere.
https://reviews.llvm.org/D48801
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
jingham added a comment.
This is correct, thanks for catching it!
There are a few other places that use m_thread_idx above this change.
Everything after the:
if (thread == nullptr) {
check should also use thread->GetID not m_options.m_thread_idx. This is all
error reporting, so it's not a
jingham added a comment.
Sorry, I wasn't clear. Suppose that the `m_thread_idx` coming into DoExecute
is LLDB_INVALID_THREAD_ID. That's what happens if you don't select a thread id
on the command line, for instance. Then the code around 1164 will set `thread`
to be the default thread. But `
jingham accepted this revision.
jingham added a comment.
That seems reasonable to me.
https://reviews.llvm.org/D48659
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
jingham requested changes to this revision.
jingham added a comment.
This revision now requires changes to proceed.
This is good. I had a few inline comments, mostly about the command syntax. I
think you should switch "-m" to "-s" since that's what we use in the other
similar places.
For the
jingham added a comment.
This is great. The only quibble I have is that I would really like to restrict
ArgsWithSuffix to be "OptionsWithSuffix". I don't think we want to add:
(lldb) some_cmd -f 0 -g 0 SomeArg OtherArg -- raw string
That seems unnecessarily general, and not terribly helpful.
jingham accepted this revision.
jingham added a comment.
This revision is now accepted and ready to land.
That looks good.
https://reviews.llvm.org/D49106
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailma
jingham requested changes to this revision.
jingham added a comment.
This revision now requires changes to proceed.
I think the CommandObjectRegex check that you took out wasn't something devious
or clever, but was just an incomplete (and so buggy) version of the check:
if (command && command[0]
jingham accepted this revision.
jingham added a comment.
This revision is now accepted and ready to land.
Thanks.
https://reviews.llvm.org/D48865
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinf
jingham added a comment.
Yeah, you are right about that. The command string presented to commands never
contained the command name, that always got stripped off. But I don't think
that ever left the command string to be nullptr... So you are right, that was
just dead code.
https://reviews.
jingham requested changes to this revision.
jingham added a comment.
It seems a little odd to choose to represent this as an array with 0 elements.
I think I would be confused by that. You can maybe choose a better name like
"value" for your cloned object. But it looks like it is also possibl
jingham accepted this revision.
jingham added a comment.
This revision is now accepted and ready to land.
Oops, sorry for the delay. This is so much easier to read. Thanks for
cleaning this up!
https://reviews.llvm.org/D48976
___
lldb-commits mai
jingham accepted this revision.
jingham added a comment.
This revision is now accepted and ready to land.
That works for me, thanks for fixing this.
https://reviews.llvm.org/D49311
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lis
jingham accepted this revision.
jingham added a comment.
This looks fine. I agree with Davide that putting some description of the type
you are formatting in comments somewhere would be make things easier for
somebody else who might have to fix this (or to you when you've totally
forgotten how
jingham accepted this revision.
jingham added a comment.
This revision is now accepted and ready to land.
I don't agree that moving dump routines away from the class that they are
dumping is a good idea in general. It makes it harder for somebody new to the
code to find out how to print out the
jingham added a comment.
Dump is really meant to be the private description of the object that you would
use for logging and the like - Description was the public face of a class. So
while the Description-like functionality could have a restrictions that
constrain its use to pretty high up in
jingham added a comment.
One trivial fix to the test case.
Repository:
rL LLVM
https://reviews.llvm.org/D49949
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
jingham added a comment.
I worry a little bit about Utility getting kind of incoherent. Some of it is
clearly utility, some is more there because that's where we are putting the
code we're trying to reduce dependencies on so we can share then with
lldb-server. RegisterValue doesn't for instan
jingham added a comment.
First off, I'm fine with Zachary's suggestion that we let the dust settle a bit
before we try to organize things better. We'll probably do a better job then.
But just to use these cases, for instance, Scalar is the base of how we realize
values in the debugger (ValueOb
jingham added a comment.
This implementation forces an extra lookup when the line number slides. For
instance, if there were only one line match, but it was not exact, you're going
to look up the exact address, fail, then look it up with exact = false.
Wouldn't it be more efficient to look wit
jingham added a comment.
In https://reviews.llvm.org/D49740#1188587, @labath wrote:
> In https://reviews.llvm.org/D49740#1188055, @jingham wrote:
>
> > First off, I'm fine with Zachary's suggestion that we let the dust settle a
> > bit before we try to organize things better. We'll probably do
jingham accepted this revision.
jingham added a comment.
This revision is now accepted and ready to land.
That looks good. Thanks for cleaning this up!
https://reviews.llvm.org/D50304
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
http:/
jingham added a comment.
Could you add a short doc to this API - it's particularly useful to do this to
the .i version. I know there are lots of API's that don't have docs, but that
is not a happy situation. I'd like it if we all at least didn't make the
problem worse by documenting all the n
jingham added a comment.
Thanks! No need for review...
Repository:
rL LLVM
https://reviews.llvm.org/D49739
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
jingham added a comment.
You and Pavel have done great work getting this all straight. I don't have
much to add except some trivial quibbles about variable naming, a grammar error
and some other inessentials.
Comment at: include/lldb/Core/Mangled.h:323-325
+ /// @return
+
jingham accepted this revision.
jingham added a comment.
Looks good.
https://reviews.llvm.org/D50071
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
jingham added a subscriber: apolyakov.
jingham added a comment.
It looks like lots of options to debugserver were added without also adding
them to the --help output. Probably because there are so few clients they
already know the options (the same person added & used them...) But if you
look
jingham accepted this revision.
jingham added a comment.
This revision is now accepted and ready to land.
This looks fine to me.
https://reviews.llvm.org/D50536
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/
jingham added a comment.
It isn't true that the ProcessIO handler will have a short duration, in
general. It will live on the stack as long as process is running, which is of
arbitrary duration. I actually don't think that much matters to this
discussion, however.
The most common IOHandler
jingham added a comment.
For the most part this is fine. There are two bits to work on:
1. I think you could do all of this work on a static std::function object from
the data section even if you don't have a process. It might be worth seeing
whether you can do that. It looks like you can ma
jingham added a comment.
Sounds like std::function objects need to run static initializers before they
are useful. So trying to format them w/o a process won't do any good.
Probably better to just return false directly if you don't have a process in
that case.
https://reviews.llvm.org/D508
jingham added a comment.
m_last_natural_stop_id is the stop ID for the last time we stopped when the
user was just running the process (run, continue, next, etc...)
m_last_user_expression_resume is the resume ID for the last user expression
resume.
The stops and resumes always occur in pairs i
jingham accepted this revision.
jingham added a comment.
This revision is now accepted and ready to land.
This looks fine. There was one place where you referred back to case 1 by name
not ordinal, but otherwise this is quite clear. Don't need another round of
review, just fix that nit and its
jingham added a comment.
What would happen to any output that the process produced while running the
utility function if we did this.
https://reviews.llvm.org/D50912
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cg
jingham added a comment.
It's not a huge deal, but it would be disconcerting to have a bunch of text
dumped to your console the next time you continue. I think the ideal solution
would be for utility functions to push a "capture & report" IO handler, so the
Utility function could retrieve what
jingham added a comment.
That's not changing the module list, that's changing the loaded section
information. It is the dynamic loader's job to figure out what got loaded
where, plus your stack trace show this happening after we've selected a plugin,
not in the process of negotiating for the p
jingham added a comment.
The other option would be to move the code that populates the section load list
into the mini dump dynamic loader. That has the benefit of keeping this
consistent with the other process plugins, but OTOH is just moving code
around...
Repository:
rLLDB LLDB
https:/
jingham added a comment.
I wonder if it is worth asserting if a process ever returns a state of
kNumStateType? I don't think it is necessary in things like
StateIsStoppedState, somebody might have found their way here from the SB API's
and we want to be forgiving there. But wherever we've don
jingham added a comment.
Other than that, this looks fine to me.
https://reviews.llvm.org/D51445
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
jingham added a comment.
By name breakpoints don't use this function so a function regex wouldn't show
the change. But the source regex does use this filter, so something like:
(lldb) break set -p ;
on a large source file might do it. That's a pretty silly thing to do,
however. The only act
jingham added a comment.
Except for the nit about the comment, this looks fine.
https://reviews.llvm.org/D51453
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
jingham accepted this revision.
jingham added a comment.
This revision is now accepted and ready to land.
Oh, yeah, gotta remember to check the box...
https://reviews.llvm.org/D51453
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://l
jingham accepted this revision.
jingham added a comment.
This revision is now accepted and ready to land.
This is fine by me.
https://reviews.llvm.org/D50912
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mai
jingham added a comment.
Yes, this is fine. Thanks for working on this!
https://reviews.llvm.org/D48465
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits
jingham requested changes to this revision.
jingham added a comment.
This revision now requires changes to proceed.
This looks great, just a few small nits and a test request.
Comment at: include/lldb/Breakpoint/BreakpointResolverFileLine.h:71
+ uint32_t m_column; ///< This is
jingham added a comment.
I'm not much surprised by that, but thanks for the experiments. As you say,
that wasn't the primary purpose of this patch.
Repository:
rL LLVM
https://reviews.llvm.org/D51453
___
lldb-commits mailing list
lldb-commits@l
jingham accepted this revision.
jingham added a comment.
This revision is now accepted and ready to land.
That's great, thanks!
https://reviews.llvm.org/D51461
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/m
jingham added a comment.
In https://reviews.llvm.org/D51445#1220905, @aprantl wrote:
> Thanks! I assume there is a whole bunch of other enums for which we should be
> doing the same thing now?
> Also there might be some 1-based ones for which we also need to check the
> lower bound.
Be caref
jingham accepted this revision as: jingham.
jingham added a comment.
This revision is now accepted and ready to land.
Looks good to me.
https://reviews.llvm.org/D51816
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/c
jingham created this revision.
Herald added subscribers: lldb-commits, teemperor, abidh, jfb, srhines.
This change allows you to make a breakpoint resolver kernel in Python.
The breakpoint search mechanism in lldb works on top of a generic mechanism
that uses a pair of Searcher - with its associ
jingham added a comment.
Thanks for adding Greg. I am the code owner for the breakpoints part of lldb,
and most recently I've been the only one adding to the scripting interface.
There wasn't another really germane reviewer, and since the dev list was CC'ed
I figured if anybody was interested
jingham requested changes to this revision.
jingham added a comment.
This revision now requires changes to proceed.
A bunch of little comments and two more substantial bits.
1. Can you add a test where we do "frame variable" on a one of these variants
when it has one value, and then continue to
jingham accepted this revision.
jingham added a comment.
This revision is now accepted and ready to land.
Since the runtime has to use the results of the introspection that the
formatter is based on, it seems appropriate to put it there. This seems like a
fine way to do it.
https://reviews.ll
jingham added a comment.
I addressed the individual concerns in the comments. There were a couple of
overall points:
1. Could we avoid adding AddLocation by having the callback return a list of
addresses to set breakpoints. I actually like directly saying "Set me a
location there" and I have
jingham added a comment.
I addressed most of the comments. I remember we argued about how the filters
should work w.r.t. the resolvers back when I first did this, but I still claim
my way is right ;-) I gave some arguments for that in response to your inline
comment.
I'm going to save this (
jingham updated this revision to Diff 165184.
jingham added a comment.
Add documentation for SBTarget.CreateBreakpointFromScript, and fixed a few
minor nits that Greg pointed out.
https://reviews.llvm.org/D51830
Files:
include/lldb/API/SBAddress.h
include/lldb/API/SBBreakpoint.h
include/
jingham requested changes to this revision.
jingham added a comment.
This revision now requires changes to proceed.
This looks good. I agree with Jonas, however that we might have cases where we
end up with two identical completions that have different descriptions, and we
shouldn't drop them.
jingham accepted this revision.
jingham added inline comments.
This revision is now accepted and ready to land.
Comment at: source/Utility/CompletionRequest.cpp:79
+ // Add the completion if we haven't seen the same value before.
+ if (m_added_values.insert(r.GetUniqueKey()).se
jingham accepted this revision.
jingham added a comment.
This revision is now accepted and ready to land.
Yes, that's a good way to do it.
https://reviews.llvm.org/D51520
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.or
This revision was automatically updated to reflect the committed changes.
Closed by commit rL342185: Add a "scripted" breakpoint type to lldb.
(authored by jingham, committed by ).
Herald added a subscriber: llvm-commits.
Changed prior to commit:
https://reviews.llvm.org/D51830?vs=165184&id=165
This revision was automatically updated to reflect the committed changes.
Closed by commit rLLDB342185: Add a "scripted" breakpoint type to
lldb. (authored by jingham, committed by ).
Changed prior to commit:
https://reviews.llvm.org/D51830?vs=165184&id=165386#toc
Repository:
rLLDB LLDB
htt
jingham created this revision.
jingham added a reviewer: clayborg.
Herald added subscribers: lldb-commits, abidh.
These are the promised docs for https://reviews.llvm.org/D51830.
Repository:
rLLDB LLDB
https://reviews.llvm.org/D52065
Files:
www/python-reference.html
Index: www/python-refe
jingham requested changes to this revision.
jingham added a comment.
This revision now requires changes to proceed.
I'm a little worried that we have asserts with no backstops here. We ship in
general with asserts off, so if some type is not copasetic we will probably
crash shortly afterwards (
jingham created this revision.
jingham added a reviewer: clayborg.
Herald added a subscriber: lldb-commits.
I hadn't needed eSearchDepthFunction for anything so it was stubbed out. Greg
indicated he would be interested in using this for the scripted resolvers, so I
got it to work with this patc
This revision was automatically updated to reflect the committed changes.
Closed by commit rL342259: Make the eSearchDepthFunction searches work, add
tests (authored by jingham, committed by ).
Herald added a subscriber: llvm-commits.
Changed prior to commit:
https://reviews.llvm.org/D52111?vs
jingham updated this revision to Diff 165614.
jingham added a comment.
I think this should address your concerns, though I did so more by reworking
the presentation, so you won't find inserts exactly at the places you pointed
out.
But I tried to make it clear that you only write the Resolver, a
jingham marked 3 inline comments as done.
jingham added a comment.
I used your suggestion and fixed the few other bits.
Comment at: www/python-reference.html:325
+Another use of the Python API's in lldb is to create a
custom breakpoint resolver. This facility
jingham updated this revision to Diff 165796.
jingham marked 3 inline comments as done.
jingham added a comment.
Addressed review comments from Greg.
Repository:
rLLDB LLDB
https://reviews.llvm.org/D52065
Files:
www/python-reference.html
Index: www/python-reference.html
==
This revision was automatically updated to reflect the committed changes.
Closed by commit rL342419: Add docs for scripted breakpoint resolvers (authored
by jingham, committed by ).
Herald added a subscriber: llvm-commits.
Changed prior to commit:
https://reviews.llvm.org/D52065?vs=165796&id=16
101 - 200 of 1825 matches
Mail list logo