[all-commits] [llvm/llvm-project] af8f6c: [lldb/Target] Support more than 2 symbols in Stack...

Med Ismail Bennani via All-commits all-commits at lists.llvm.org
Fri Mar 20 13:09:02 PDT 2020


  Branch: refs/heads/dwarf
  Home:   https://github.com/llvm/llvm-project
  Commit: af8f6c7ae9fa8499c3946c74286fd107988fd972
      https://github.com/llvm/llvm-project/commit/af8f6c7ae9fa8499c3946c74286fd107988fd972
  Author: Med Ismail Bennani <medismail.bennani at gmail.com>
  Date:   2020-03-17 (Tue, 17 Mar 2020)

  Changed paths:
    M lldb/include/lldb/Target/StackFrameRecognizer.h
    M lldb/packages/Python/lldbsuite/test/lldbutil.py
    M lldb/source/Commands/CommandObjectFrame.cpp
    M lldb/source/Commands/Options.td
    M lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp
    M lldb/source/Target/AssertFrameRecognizer.cpp
    M lldb/source/Target/StackFrameRecognizer.cpp
    M lldb/test/API/commands/frame/recognizer/TestFrameRecognizer.py
    M lldb/test/API/commands/frame/recognizer/main.m
    M lldb/unittests/Target/StackFrameRecognizerTest.cpp

  Log Message:
  -----------
  [lldb/Target] Support more than 2 symbols in StackFrameRecognizer

This patch changes the way the StackFrame Recognizers match a certain
frame.

Until now, recognizers could be registered with a function
name but also an alternate symbol.
This change is motivated by a test failure for the Assert frame
recognizer on Linux. Depending the version of the libc, the abort
function (triggered by an assertion), could have more than two
signatures (i.e. `raise`, `__GI_raise` and `gsignal`).

Instead of only checking the default symbol name and the alternate one,
lldb will iterate over a list of symbols to match against.

rdar://60386577

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


  Commit: 903f2a2dbb30fcba786d9ae9a63a3b5e414a2a6e
      https://github.com/llvm/llvm-project/commit/903f2a2dbb30fcba786d9ae9a63a3b5e414a2a6e
  Author: Med Ismail Bennani <medismail.bennani at gmail.com>
  Date:   2020-03-19 (Thu, 19 Mar 2020)

  Changed paths:
    M lldb/source/Expression/DWARFExpression.cpp
    M lldb/source/Utility/Scalar.cpp

  Log Message:
  -----------
  [lldb/Dwarf] Change DW_OP_piece to use an llvm::BitVector

This patch changes the implementation of DW_OP_piece to use
llvm::BitVector instead of the lldb_private::Value.

This allow to have more granularity which would be useful to implement
DW_OP_bit_piece but also when combined with a second BitVector for
masking the unknown bits/bytes, improves the DWARF Expression
evaluation Since it will show a future patch, the unknown bits/bytes as
optimised.

Additionally, this patch fixes a overloading resolution on the Scalar
constructor when using fixed-size interger types instead of fundamentale types.
It also fixes a bug when requesting a Scalar size when the value is less
than a byte.

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


  Commit: 4e5d04da4990dbc01dd6dfa1c564a552c6b473d8
      https://github.com/llvm/llvm-project/commit/4e5d04da4990dbc01dd6dfa1c564a552c6b473d8
  Author: Med Ismail Bennani <medismail.bennani at gmail.com>
  Date:   2020-03-20 (Fri, 20 Mar 2020)

  Changed paths:
    M lldb/include/lldb/Core/Value.h
    M lldb/source/Core/Value.cpp
    M lldb/source/Expression/DWARFExpression.cpp
    M lldb/unittests/Expression/DWARFExpressionTest.cpp

  Log Message:
  -----------
  [lldb/Dwarf] Improve DW_OP_bit_piece support (WIP)

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


Compare: https://github.com/llvm/llvm-project/compare/af8f6c7ae9fa%5E...4e5d04da4990


More information about the All-commits mailing list