[PATCH] D46187: [Analyzer] getRegisteredCheckers(): handle debug checkers too.

Artem Dergachev via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Mon May 14 14:58:36 PDT 2018


NoQ added a comment.

In https://reviews.llvm.org/D46187#1089087, @lebedev.ri wrote:

> > I believe we could also benefit from a method of extracting the analyzer's `clang -cc1` run-line from clang-tidy. This would allow arbitrary debugging over a single analyzer invocation.
>
> I'm not really following, sorry.




In https://reviews.llvm.org/D46187#1091309, @alexfh wrote:

> In https://reviews.llvm.org/D46187#1088722, @NoQ wrote:
>
> > I believe we could also benefit from a method of extracting the analyzer's `clang -cc1` run-line from clang-tidy.
>
>
> It should be possible now using `clang-tidy -extra-arg=-v some/file.cpp` (or `clang-check -extra-arg=-v ...`).


Nice!

So essentially @lebedev.ri could do `clang-check -analyze -extra-arg=-v ../llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp`, then copy the printed `clang Invocation:` and append `-analyzer-checker debug.ViewCallGraph` to it.

Or maybe even something as horrible as

  clang-check -analyze -extra-arg=-Xclang -extra-arg=-analyzer-checker -extra-arg=-Xclang -extra-arg=debug.ViewCallGraph ../llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp

And it sounds like the roughly right level of verbosity for discriminating between a user-facing feature and a definitely-not-user-facing feature.

I don't mind having a separate flag specifically for enabling debug checkers, but when it comes to actual debugging of the analyzer, debug checkers are usually not sufficient. Playing with other flags and `-analyzer-config` options is very often necessary, so if i was to debug the analyzer from clang-tidy, most of the time i'd have preferred to do the `-v` trick.


Repository:
  rC Clang

https://reviews.llvm.org/D46187





More information about the cfe-commits mailing list