<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">I don’t think we currently supporting setting Python breakpoint callbacks through the SB API<div>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</div><div>It’s definitely an enhancement worth considering</div><div><br><div>
<div style="color: rgb(0, 0, 0); letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div style="font-size: medium; orphans: 2; widows: 2; border-collapse: separate; border-spacing: 0px;"><span style="font-size: 12px; orphans: auto; widows: auto;">Enrico Granata</span><br style="font-size: 12px; orphans: auto; widows: auto;"><span style="font-size: 12px; orphans: auto; widows: auto;">✉ egranata@</span><font color="#ff2600" style="font-size: 12px; orphans: auto; widows: auto;"></font><span style="font-size: 12px; orphans: auto; widows: auto;">.com</span><br style="font-size: 12px; orphans: auto; widows: auto;"><span style="font-size: 12px; orphans: auto; widows: auto;">✆ 27683</span></div></div>
</div>
<br><div><div>On Apr 24, 2013, at 11:00 AM, "Malea, Daniel" <<a href="mailto:daniel.malea@intel.com">daniel.malea@intel.com</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div style="letter-spacing: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;">Hi Greg, or whoever reads this first,<br><br>I have a question about the python API lldb.SBBreakpoint.SetCallback function. According to the docs, the signature is:<br><br>SetCallback(self, *args) unbound lldb.SBBreakpoint method<br> SetCallback(self, BreakpointHitCallback callback, void baton)<br><br>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:<br><br>typedef bool (*BreakpointHitCallback) (void *baton,<br> SBProcess &process,<br> SBThread &thread,<br> lldb::SBBreakpointLocation &location);<br><br><br>I tried passing a function that has (what I believe is) the correct signature:<br><br>class MyTestCase(TestBase):<br> def bp_callback(self, process, thread, breakpoint_loc):<br> Pass<br><br> def register_callback(self, target)<br> breakpoint = target.BreakpointCreateByLocation('main.c', self.line1)<br> breakpoint.SetCallback(self.bp_callback, self)<br><br><br>But I am getting a python error:<br><br>TypeError: in method 'SBBreakpoint_SetCallback', argument 2 of type 'lldb::SBBreakpoint::BreakpointHitCallback'<br><br>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..<br><br><br><br>Thanks,<br>Dan<br><br>_______________________________________________<br>lldb-dev mailing list<br><a href="mailto:lldb-dev@cs.uiuc.edu">lldb-dev@cs.uiuc.edu</a><br><a href="http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev">http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev</a></div></blockquote></div><br></div></body></html>