[cfe-dev] speed up debugging a static analysis checker?
Lou Wynn via cfe-dev
cfe-dev at lists.llvm.org
Wed Oct 3 11:44:19 PDT 2018
I copied my previous follow-up email below my signature, which you
missed. Here's the full description.
The debugging commands are as follows.
llvm/debug-git$ lldb-6.0 -- bin/clang-8 -cc1 -analyze
(lldb) target create "bin/clang-8"
Current executable set to 'bin/clang-8' (x86_64).
(lldb) settings set -- target.run-args "-cc1" "-analyze"
(lldb) b SimpleStreamChecker.cpp:132
Breakpoint 1: no locations (pending).
WARNING: Unable to resolve breakpoint to any actual locations.
(lldb) run<<<<<-------- takes about 21 seconds to hit the breakpoint
Process 26355 launched:
1 location added to breakpoint 1
Process 26355 stopped
* thread #1, name = 'clang-8', stop reason = breakpoint 1.1
frame #0: 0x00007fffec1f0188
Call=0x0000000000335c80, C=0x00007fffffff83a8) const at
131 // Generate the next transition (an edge in the exploded graph).
-> 132 ProgramStateRef State = C.getState();
133 State = State->set<StreamMap>(FileDesc,
where clang-8 is built by using the following CMake configuration (and
cmake -G "Unix Makefiles" -DLLVM_OPTIMIZED_TABLEGEN=true
-DCMAKE_BUILD_TYPE=Debug -DBUILD_SHARED_LIBS=ON ../src-git/
On 09/28/2018 06:35 PM, Lou Wynn wrote:
> My simplified test case file only contains one function, with others
> commented out.
> I tried the RelWithDebInfo CMake build type, it slightly reduced the
> time to reach the first breakpoint from 21 to 16 seconds when I ran it
> with lldb command line. But when I debug clang in vscode, this
> configuration doesn't stop at the breakpoint (with the CodeLLDB
> extension). The Debug build stops at the breakpoint. Saving 4 seconds
> on command line is not useful because setting or canceling a
> breakpoint on the command line takes more time for me in the
> unfamiliar code base.
> I already used gdb-add-index to the clang executable file.
> Any other method might help?
> How much time does it take you to stop at a breakpoint in a checker?
On 10/03/2018 11:12 AM, George Karpenkov wrote:
> Hi Lou,
> Somehow I haven’t seen your follow up email.
> Can you describe a full reproducible example?
> With an exact command line invocation, exact input file, and exact
> breakpoint line.
>> On Sep 28, 2018, at 2:27 PM, George Karpenkov via cfe-dev
>> <cfe-dev at lists.llvm.org <mailto:cfe-dev at lists.llvm.org>> wrote:
>> Hi Lou,
>> You probably want to only debug the analysis running on a function
>> you are interested in.
>> -Xclang -analyzer-display-progress
>> shows what functions the analyzer is going through, and
>> -Xclang -analyze-function “function-name”
>> let’s you select the function (use the exact name copied from the
>> previous list).
>> You can also try release+debuginfo configuration if the former is too
>> 20 seconds does sound excessive for a simple test file in any case
>> though, so that is strange.
>>> On Sep 28, 2018, at 1:49 PM, Lou Wynn via cfe-dev
>>> <cfe-dev at lists.llvm.org <mailto:cfe-dev at lists.llvm.org>> wrote:
>>> I'm now having a question of how to speed up startup runs of a
>>> static analysis checker in the lldb debugger. It takes about 21
>>> seconds for the debugger to stop at the first breakpoint at the
>>> SimpleStreamChecker::checkPreCall function when I run the following
>>> lldb-6.0 -- clang-8 -cc1 -analyze
>>> -analyzer-checker=alpha.unix.SimpleStream \
>>> Are there ways to make it faster? I run many debugging sessions not
>>> only to figure out how the static analyzer works but also to debug
>>> my first checker. Any time saving method is appreciated.
>>> cfe-dev mailing list
>>> cfe-dev at lists.llvm.org <mailto:cfe-dev at lists.llvm.org>
>> cfe-dev mailing list
>> cfe-dev at lists.llvm.org <mailto:cfe-dev at lists.llvm.org>
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the cfe-dev