[all-commits] [llvm/llvm-project] 6cfc90: [Function] Lock the function when parsing call sit...

Vedant Kumar via All-commits all-commits at lists.llvm.org
Thu Jul 9 10:37:32 PDT 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 6cfc90b9b791a023368b9384f57c2c3120894247
      https://github.com/llvm/llvm-project/commit/6cfc90b9b791a023368b9384f57c2c3120894247
  Author: Vedant Kumar <vsk at apple.com>
  Date:   2020-07-09 (Thu, 09 Jul 2020)

  Changed paths:
    M lldb/include/lldb/Symbol/Function.h
    M lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
    M lldb/source/Symbol/Function.cpp

  Log Message:
  -----------
  [Function] Lock the function when parsing call site info

Summary:
DWARF-parsing methods in SymbolFileDWARF which update module state
typically take the module lock. ParseCallEdgesInFunction doesn't do
this, but higher-level locking within lldb::Function (which owns the
storage for parsed call edges) is necessary.

The lack of locking could explain some as-of-yet unreproducible crashes
which occur in Function::GetTailCallingEdges(). In these crashes, the
`m_call_edges` vector is non-empty but contains a nullptr, which
shouldn't be possible. (If this vector is non-empty, it _must_ contain a
non-null unique_ptr.)

This may address rdar://55622443 and rdar://65119458.

Reviewers: jasonmolenda, friss, jingham

Subscribers: aprantl, lldb-commits

Tags: #lldb

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


  Commit: f8f259ce4aca381896c114738a3d83a90c5c32be
      https://github.com/llvm/llvm-project/commit/f8f259ce4aca381896c114738a3d83a90c5c32be
  Author: Vedant Kumar <vsk at apple.com>
  Date:   2020-07-09 (Thu, 09 Jul 2020)

  Changed paths:
    M lldb/include/lldb/Symbol/Function.h

  Log Message:
  -----------
  [lldb/Function] Reflow doxygen comments for member variables, NFC

As suggested in the review for https://reviews.llvm.org/D83359.


Compare: https://github.com/llvm/llvm-project/compare/0b72b9d07fcd...f8f259ce4aca


More information about the All-commits mailing list