[lldb-dev] delay during continue after attach on Mac OS X
Arthur Evstifeev
ap4y at me.com
Fri May 24 18:42:01 PDT 2013
Hi Greg,
Thanks for the clarification about async events, it works for me now.
On 05/24, Greg Clayton wrote:
> One issue we have to watch out for is that the process has the notion of a public state (stopped/running/exited). The process state doesn't update until your consume the process events that say "process has stopped". So if you do code like:
>
> pid_t pid = 123;
> SBAttachInfo attach_info(pid);
> SBError error;
> SBProcess process = target.Attach (attach_info, error);
>
> even in the process is stopped, internally, the public facade of "SBProcess" won't update its state until you consume the process event that says the process is stopped.
>
> There are two ways to fix this:
> 1 - Make sure to consume the process events so the public process state gets updated.
> 2 - Set the async debugging to false to enable synchronous debugging and the events will be consumed for you.
>
> If you are telling LLDB to continue after attaching and the public state is still "eStateAttaching", the continue will just get ignored.
>
> Greg Clayton
>
> On May 24, 2013, at 2:09 PM, "Malea, Daniel" <daniel.malea at intel.com> wrote:
>
> > Hi Arthur,
> >
> > I'm afraid I haven't run into the problem you describe specifically. Might
> > it be similar to this open (Linux) bug though?
> > http://llvm.org/bugs/show_bug.cgi?id=16039
> >
> > Also, I'm copying lldb-dev list with your question; maybe someone there
> > has more experience on Mac OS X..
> >
> >
> > Dan
> >
> > On 2013-05-23 7:25 PM, "Arthur Evstifeev" <ap4y at me.com> wrote:
> >
> >> Hi Daniel,
> >>
> >> I wanted to ask something about lldb implementation of the --continue
> >> flag for process commands. Specifically, maybe you know have can I
> >> achieve the same behaviour from python API.
> >>
> >> When I'm invoking from python Continue method on process instance after
> >> attaching,
> >> actual process is not continuing, after slight delay process is stopping
> >> and I have to invoke
> >> continue manually. But when I'm attaching from console lldb with -c flag
> >> it's actually continue as expected, but there is a noticeable delay
> >> between process stopped and process continued messages in console. So,
> >> from this console log messages it seems like lldb is waiting till
> >> process stops and then invoking continue. Maybe you have ideas how I can
> >> implement similar behaviour?
> >>
> >> Cheers,
> >> Arthur
> >>
> >> On 05/23, Malea, Daniel wrote:
> >>> Hi Arthur, thanks for the new functionality; I will try it out today and
> >>> let you know how it goes!
> >>>
> >>> Do you mind also adding a few words in utils/vim-lldb/doc/lldb.txt for
> >>> the
> >>> new commands? I like to keep the help page in sync :)
> >>>
> >>>
> >>> Cheers,
> >>> Dan
> >>>
> >>> On 2013-05-22 6:57 PM, "Arthur Evstifeev" <ap4y at me.com> wrote:
> >>>
> >>>> Hi Daniel,
> >>>>
> >>>> Thanks for the response and accepting patches. I have implemented
> >>> couple
> >>>> small additions that we discussed:
> >>>>
> >>>> 1. Added new :Lpo command
> >>>> 2. :Lpo and :Lprint can be invoked without parameters. In that case
> >>>> cursor word will be used
> >>>> 3. Added :LpO command in that case instead of <cword> will be used
> >>>> stripped <cWORD>. This command is useful for printing objective-c
> >>>> properties (for ex.: self.tableView). I think alternative :Lprint
> >>>> command with cWORD will be useful too (for structs and cpp accessors),
> >>>> but couldn't come up with meaningful alias.
> >>>>
> >>>> Thanks again!
> >>>>
> >>>> On 05/22, Malea, Daniel wrote:
> >>>>> Sweet! I'm glad it's working out for you. I committed your
> >>> improvements
> >>>>> in
> >>>>> 182483 and 182484!
> >>>>>
> >>>>> I'm not too familiar with Objective-C but anything that helps out
> >>> with
> >>>>> that is that is welcome. Are you thinking of adding a ":Lpo" option?
> >>>>>
> >>>>> As for the :Lprint under cursor thing, I've been meaning to implement
> >>>>> something like that myself but have not gotten around to it. If you
> >>> have
> >>>>> improvements, please send patches and I will commit post haste!
> >>>>>
> >>>>>
> >>>>> Cheers,
> >>>>> Dan
> >>>>>
> >>>>> On 2013-05-21 10:47 PM, "Arthur Evstifeev" <ap4y at me.com> wrote:
> >>>>>
> >>>>>> Hi Daniel,
> >>>>>>
> >>>>>> Thanks for the lldb plugin, this plugin is so helpful for me. I
> >>>>>> have missed couple function though, so I implemented them and want
> >>> to
> >>>>>> contribute them.
> >>>>>>
> >>>>>> I'm using this plugin for iOS development. Since such apps only work
> >>>>>> under simulator process, current target-centric plugin architecture
> >>>>>> doesn't fit well. I added attach and detach operations, that
> >>>>>> don't require target instance (empty target will be created during
> >>>>>> attach).
> >>>>>>
> >>>>>> Also I found myself several time in situation when I wanted to close
> >>>>>> plugin panes, but it's really hard to restore them all at once. So I
> >>>>>> allowed to invoke Lshow without parameters. In that case all panes
> >>> will
> >>>>>> be restored.
> >>>>>>
> >>>>>> I wanted to ask what do you think about adding additional
> >>> objective-c
> >>>>>> specific printing command ("po", which is alias to "expression -o")?
> >>>>> This
> >>>>>> is
> >>>>>> a most used command for objective-c developers. Also I found very
> >>>>>> useful macro for :Lprint word under cursor. What do you think about
> >>>>> this
> >>>>>> additions? I can send patches for this operations too.
> >>>>>>
> >>>>>> Thanks,
> >>>>>> Arthur
> >>>>>
> >>>
> >
> >
> > _______________________________________________
> > lldb-dev mailing list
> > lldb-dev at cs.uiuc.edu
> > http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev
>
More information about the lldb-dev
mailing list