[all-commits] [llvm/llvm-project] 35ecfd: [lldb/Symbol] Fix column breakpoint `move_to_neare...

Med Ismail Bennani via All-commits all-commits at lists.llvm.org
Tue May 4 22:08:16 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 35ecfda01ccd19e1222c065056f68bbd2575e4ac
      https://github.com/llvm/llvm-project/commit/35ecfda01ccd19e1222c065056f68bbd2575e4ac
  Author: Med Ismail Bennani <medismail.bennani at gmail.com>
  Date:   2021-05-05 (Wed, 05 May 2021)

  Changed paths:
    M lldb/include/lldb/Symbol/LineTable.h
    M lldb/source/Breakpoint/BreakpointResolver.cpp
    M lldb/source/Symbol/LineTable.cpp
    M lldb/test/API/functionalities/breakpoint/breakpoint_by_line_and_column/Makefile
    M lldb/test/API/functionalities/breakpoint/breakpoint_by_line_and_column/TestBreakpointByLineAndColumn.py
    R lldb/test/API/functionalities/breakpoint/breakpoint_by_line_and_column/main.c
    A lldb/test/API/functionalities/breakpoint/breakpoint_by_line_and_column/main.cpp

  Log Message:
  -----------
  [lldb/Symbol] Fix column breakpoint `move_to_nearest_code` match

This patch fixes the column symbol resolution when creating a breakpoint
with the `move_to_nearest_code` flag set.

In order to achieve this, the patch adds column information handling in
the `LineTable`'s `LineEntry` finder. After experimenting a little, it
turns out the most natural approach in case of an inaccurate column match,
is to move backward and match the previous `LineEntry` rather than going
forward like we do with simple line breakpoints.

The patch also reflows the function to reduce code duplication.

Finally, it updates the `BreakpointResolver` heuristic to align it with
the `LineTable` method.

rdar://73218201

Differential Revision: https://reviews.llvm.org/D101221

Signed-off-by: Med Ismail Bennani <medismail.bennani at gmail.com>




More information about the All-commits mailing list