[PATCH] D36347: New lldb python module for adding diagnostic breakpoints

Greg Clayton via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Wed Oct 25 14:45:05 PDT 2017


clayborg added inline comments.


================
Comment at: utils/clangdiag.py:62
+
+def enable(debugger, args):
+    # Always disable existing breakpoints
----------------
Pass exe_ctx or target into this instead of the debugger (see Jim's comment on execution contexts below.


================
Comment at: utils/clangdiag.py:78
+        print('diagtool not found along side %s' % exe)
+        return
+
----------------
No need. just a suggestion. Is this information available in the main executable as any kind of debug info? If so you can read it from there. If it is always in a stand alone separate file, then what you have is ok.


================
Comment at: utils/clangdiag.py:87
+def disable(debugger):
+    global target
+    global diagtool
----------------
jingham wrote:
> clayborg wrote:
> > remove and use:
> > ```
> > target = debugger.GetSelectedTarget()
> > ```
> See my comment.  Don't use selected targets, use the command form that takes an SBExecutionContext.  That's been around for more than a couple of years now, so it's pretty safe to use.
Just pass the target or exe_ctx into this function then instead of "debugger".


================
Comment at: utils/clangdiag.py:92
+    for bp in Breakpoints:
+        target.BreakpointDelete(bp.GetID())
+    target = None
----------------
nice!


================
Comment at: utils/clangdiag.py:100
+    # Use the Shell Lexer to properly parse up command options just like a
+    # shell would
+    command_args = shlex.split(command)
----------------
Great idea. Forgot about the execution context variant. The "exe_ctx" is a lldb.SBExecutionContext object. You get your target using:

```
target = exe_ctx.GetTarget()
```



https://reviews.llvm.org/D36347





More information about the cfe-commits mailing list