jankratochvil added a comment.

I would separate/remove all [nfc] changes from this patch as they complicate it 
a bit. Such cleaned up patch I have prepared for myself: 
https://people.redhat.com/jkratoch/D74136-cleanup.patch

Then also did you notice there is a regression for (I do not know why):

  FAIL: LLDB 
(/home/jkratoch/redhat/llvm-monorepo-clangassert/bin/clang-11-x86_64) :: 
test_scripted_resolver (TestScriptedResolver.TestScriptedResolver)
    File 
"/home/jkratoch/redhat/llvm-monorepo/lldb/test/API/functionalities/breakpoint/scripted_bkpt/TestScriptedResolver.py",
 line 23, in test_scripted_resolver
      self.do_test()
    File 
"/home/jkratoch/redhat/llvm-monorepo/lldb/test/API/functionalities/breakpoint/scripted_bkpt/TestScriptedResolver.py",
 line 152, in do_test
      self.assertEqual(wrong[i].GetNumLocations(), 0, "Breakpoint %d has 
locations."%(i))
  AssertionError: 1 != 0 : Breakpoint 1 has locations.



================
Comment at: lldb/source/Breakpoint/BreakpointResolverName.cpp:292
+            filter_by_function), // include symbols only if we
+                                 // aren't filtering by CU or function
           include_inlines, func_list);
----------------
[nfc] It could use `include_symbols` here.



================
Comment at: lldb/source/Core/SearchFilter.cpp:713
+  if (!type)
+    return SearchFilterByModuleList::FunctionPasses(function);
+
----------------
If we cannot determine which file the function is from then rather ignore it 
(the current call returns `true`):
```
  return false;
```


================
Comment at: lldb/source/Core/SearchFilter.cpp:726
+  if (m_target_sp &&
+      m_target_sp->GetInlineStrategy() == eInlineBreakpointsHeaders) {
+    if (!sym_ctx.comp_unit) {
----------------
This value should be cached.
But besides that there should be `GetInlineStrategy() == 
eInlineBreakpointsNever || (GetInlineStrategy() == eInlineBreakpointsHeaders && 
cu_spec.IsSourceImplementationFile()modulosomeReverseRemapPath?`.
As for `eInlineBreakpointsAlways` the check is being delegated to 
`FunctionPasses()`.



================
Comment at: lldb/source/Core/SearchFilter.cpp:732
+    FileSpec cu_spec;
+    if (sym_ctx.comp_unit) {
+      cu_spec = sym_ctx.comp_unit->GetPrimaryFile();
----------------
This condition is always `true` as there is already above:
```
if (!sym_ctx.comp_unit)
```



================
Comment at: lldb/source/Core/SearchFilter.cpp:835
+  if (m_target_sp &&
+      m_target_sp->GetInlineStrategy() == eInlineBreakpointsHeaders)
+    return flags | eSymbolContextCompUnit;
----------------
Here should be `eInlineBreakpointsNever || eInlineBreakpointsHeaders` (and 
probably cache the `GetInlineStrategy()` value).
For `eInlineBreakpointsHeaders` we do not know for sure as we cannot call 
`IsSourceImplementationFile()` for `cu_spec` which is not known yet here.



Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D74136/new/

https://reviews.llvm.org/D74136



_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to