[Lldb-commits] [PATCH] D74136: [LLDB] WIP: Follow DW_AT_decl_file when setting breakpoint

Konrad Wilhelm Kleine via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Thu Jun 25 05:15:03 PDT 2020


kwk updated this revision to Diff 273307.
kwk added a comment.

- bring back logic to keep a symbol context when a function passes and add a comment as Jan suggested
- remove test from scripted resolver that calls SearchFilterByModulesAndSupportFiles::AddressPasses
  - before the test checked that a non existing file doesn't cause setting a breakpoint location
  - the logic in AddressPasses before was to identify the CU of a symbol context and check if it's file is in the list of files that are allowed to pass. We agreed to change this logic so that not only CU's are checked but also files in which a function is declared. SearchFilterByModulesAndSupportFiles::FunctionPasses now does exactly that but it is not called from the BreakPointResolverScripted class, only from BreakpointResolverName.
  - It is an open question how to deal with this and I hope Jim can help here.
  - Shall we maybe take another file from the SymbolContext to see if we can filter by that in AddressPasses? Here's a dump of the filter context for the removed test:

  0x00007ffda14d94a0: SymbolContext
      Module       = 0x0000563169c60780 /opt/notnfs/kkleine/llvm/build/lldb-test-build.noindex/functionalities/breakpoint/scripted_bkpt/TestScriptedResolver.test_scripted_resolver/a.out
      CompileUnit  = 0x000056316a04c310 {0000000000000000} /opt/notnfs/kkleine/llvm/lldb/test/API/functionalities/breakpoint/scripted_bkpt/main.c
      Function     = 0x000056316a048c40 {7fffffff00000043} break_on_me, address-range = a.out[0x0000000000401150-0x0000000000401167)
              Type = 0x56316a0220d0:     Type{0x7fffffff00000043} , name = "break_on_me", decl = main.c:10, compiler_type = 0x000056316a0cbe80 void (void)
  
      Block        = 0x000056316a048c78 {7fffffff00000043}
      LineEntry    = a.out[0x0000000000401150-0x0000000000401154), file = /opt/notnfs/kkleine/llvm/lldb/test/API/functionalities/breakpoint/scripted_bkpt/main.c, line = 11, is_start_of_statement = TRUE
      Symbol       = 0x000056316a037248
  Variable     = 0x0000000000000000



- rename var


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D74136

Files:
  lldb/include/lldb/Core/SearchFilter.h
  lldb/include/lldb/Target/Target.h
  lldb/source/Breakpoint/BreakpointResolverName.cpp
  lldb/source/Core/SearchFilter.cpp
  lldb/source/Target/Target.cpp
  lldb/test/API/functionalities/breakpoint/scripted_bkpt/TestScriptedResolver.py
  lldb/test/Shell/Breakpoint/Inputs/search-support-files-func.cpp
  lldb/test/Shell/Breakpoint/Inputs/search-support-files.cpp
  lldb/test/Shell/Breakpoint/Inputs/search-support-files.h
  lldb/test/Shell/Breakpoint/search-support-files.test

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D74136.273307.patch
Type: text/x-patch
Size: 23551 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20200625/e1f2351a/attachment-0001.bin>


More information about the lldb-commits mailing list