Hm, that's interesting. I tried running a debug lldb on /bin/ls. then I attached from another lldb. I put a breakpoint on CommandObjectTargetModulesLookup::DoExecute and resumed execution. In the debuggee lldb, I did
tar mod loo -a 0 and auto-repeated return so the same command would be executed over and over. In the debugger lldb, I tried adding a command to the breakpoint, br comm add p does_not_exist DONE and continuing - after a couple dozen times, I didn't see a slowdown. I tried adding a breakpoint condition, br mod -c 'doesNotExist == 1' 1 and continuing, and didn't see a slowdown after a few dozen repetitions. I'm on macOS using .o file DWARF debugging. I'm sure there's a bug here, but it may be more specific to the platform and type of debug info that you're using? It could be that lldb is too small of a project to repo this problem too. > On Jul 4, 2019, at 11:38 AM, Guilherme Andrade via lldb-dev > <lldb-dev@lists.llvm.org> wrote: > > I have two breakpoint inside methods that are called every frame (C++ project > using Unreal), and every time one of them is reached, I evaluate one > expression (I'm being able to reproduce this using an undefined name, say > "undefinedVariable"). After a few iterations (usually tens), the time it > takes for LLDB to say that name doesn't exist increases, despite being the > same expression, at the same breakpoint and the call stack remaining > unchanged. > > I've noticed that the number of lexical Decl queries and imports conducted by > Clang reported in 'Local metrics' increase. > > They go from: > Number of visible Decl queries by name : 29 > Number of lexical Decl queries : 9 > Number of imports initiated by LLDB : 15 > Number of imports conducted by Clang : 827 > Number of Decls completed : 5 > Number of records laid out : 2 > > To: > Number of visible Decl queries by name : 29 > Number of lexical Decl queries : 14 > Number of imports initiated by LLDB : 15 > Number of imports conducted by Clang : 1342 > Number of Decls completed : 5 > Number of records laid out : 2 > > Also, the number of SymbolFileDWARF operations in the logs jumps from 366 to > 406. > > So, I've got two questions. 1) Is it safe to say that those extra imports and > Decl queries are responsible for the performance loss? 2) Why do they happen? > > Thanks! > _______________________________________________ > lldb-dev mailing list > lldb-dev@lists.llvm.org > https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev _______________________________________________ lldb-dev mailing list lldb-dev@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev