I don’t think we currently supporting setting Python breakpoint callbacks 
through the SB API
We would need to add some code that takes a meaningful representation of a 
Python callable, and makes a C++ thunk that knows how to call into Python and 
get the result back to C++-land
It’s definitely an enhancement worth considering

Enrico Granata
✉ egranata@.com
✆ 27683

On Apr 24, 2013, at 11:00 AM, "Malea, Daniel" <[email protected]> wrote:

> Hi Greg, or whoever reads this first,
> 
> I have a question about the python API lldb.SBBreakpoint.SetCallback 
> function. According to the docs, the signature is:
> 
> SetCallback(self, *args) unbound lldb.SBBreakpoint method
>    SetCallback(self, BreakpointHitCallback callback, void baton)
> 
> However, I am not sure how to create an instance of the BreakpointHitCallback 
> type that is required for the second parameter. I'm not seeing any class in 
> the Python API that is named that; only the C++ API has a typedef of that 
> name:
> 
> typedef bool (*BreakpointHitCallback) (void *baton,
>                                       SBProcess &process,
>                                       SBThread &thread,
>                                       lldb::SBBreakpointLocation &location);
> 
> 
> I tried passing a function that has (what I believe is) the correct signature:
> 
> class MyTestCase(TestBase):
>  def bp_callback(self, process, thread, breakpoint_loc):
>    Pass
> 
>  def register_callback(self, target)
>    breakpoint = target.BreakpointCreateByLocation('main.c', self.line1)
>    breakpoint.SetCallback(self.bp_callback, self)
> 
> 
> But I am getting a python error:
> 
> TypeError: in method 'SBBreakpoint_SetCallback', argument 2 of type 
> 'lldb::SBBreakpoint::BreakpointHitCallback'
> 
> So, my question is: is it possible to register a callback to be called when a 
> breakpoint is hit using that function? If so, what am I doing wrong? If not, 
> is it preferable to create an SBListener for this purpose, or is the "target 
> stop-hook add" command the only way to do what I'm trying to do? I'm trying 
> to avoid using the built-in script interpreter..
> 
> 
> 
> Thanks,
> Dan
> 
> _______________________________________________
> lldb-dev mailing list
> [email protected]
> http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev

_______________________________________________
lldb-dev mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev

Reply via email to