The SB API's in general don't send events about changing the things that they 
directly change.  It seems awkward to say "Do X" and then have to field an 
event telling you that "X was done".  And the return from the function 
generally tells you whether what you tried to do succeeded or not, so it is a 
redundant piece of information.

If you are trying to use the event system so that you can just listen to events 
to manage updates, regardless of who initiated the action, you probably want 
all the SB API's the perform actions that would generate events to do so.  That 
makes it sound more like you want there to be a mode of the debugger where we 
pass notify->true for all the lldb_private API's that take it, rather than 
having to decide on a call-by-call basis.  If you are going to do it that way 
you probably want this to be set at startup, since it doesn't seem like the 
sort of thing you want people to be able to change out from under you.  Anyway, 
that seems cleaner to me.  

BTW, the lldb command line commands DO send events when the selected 
thread/frame/etc. changes.  That's necessary since a program driving lldb has 
no good way of knowing what the command line commands have done otherwise.

Jim


> On Oct 25, 2016, at 1:42 AM, Bogdan Hopulele via lldb-dev 
> <lldb-dev@lists.llvm.org> wrote:
> 
> Hi all,
>  
> Does anyone know how I can get LLDB to generate events when calling 
> SBProcess::SetSelectedThreadByID?
> SetSelectedThreadByID calls SetSelectedThreadByIndexID, but it doesn’t pass 
> the notify parameter so it defaults to false in ThreadList.h . Same story for 
> SBThread::SetSelectedFrame.
>  
> Why is the default set to false? The event shouldn’t be generated if there is 
> no listener and if there is one then why not notify it? I’m also curious how 
> Xcode manages to update its threads window when changing the selected thread 
> from the console if no event gets generated.
>  
> 2 solutions come to mind:
> 1.       Overload the public functions in order to expose the notify 
> parameter (broadcast for the frame function).
> 2.       Change the default if there is no reason to have it set to false.
>  
> Thanks,
> Bogdan
> National Instruments Romania S.R.L.
> ------------------------------------------------------
> B-dul 21 Decembrie 1989, nr. 77, A2
> Cluj-Napoca 400604, Romania
> C.I.F.: RO17961616 | O.R.C.: J12/3337/2005
> Telefon: +40 264 406428 | Fax: +40 264 406429
> E-mail: office.c...@ni.com 
> Web: romania.ni.com 
> 
> Vanzari si suport tehnic:
> Telefon gratuit : 0800 070071
> E-mail vanzari: ni.roma...@ni.com
> E-mail suport tehnic: techsupp...@ni.com 
> _______________________________________________
> lldb-dev mailing list
> lldb-dev@lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev

_______________________________________________
lldb-dev mailing list
lldb-dev@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev

Reply via email to