Coverage Report

Created: 2022-01-22 13:19

/Users/buildslave/jenkins/workspace/coverage/llvm-project/lldb/include/lldb/Breakpoint/BreakpointResolverFileLine.h
Line
Count
Source (jump to first uncovered line)
1
//===-- BreakpointResolverFileLine.h ----------------------------*- C++ -*-===//
2
//
3
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4
// See https://llvm.org/LICENSE.txt for license information.
5
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6
//
7
//===----------------------------------------------------------------------===//
8
9
#ifndef LLDB_BREAKPOINT_BREAKPOINTRESOLVERFILELINE_H
10
#define LLDB_BREAKPOINT_BREAKPOINTRESOLVERFILELINE_H
11
12
#include "lldb/Breakpoint/BreakpointResolver.h"
13
#include "lldb/Core/SourceLocationSpec.h"
14
15
namespace lldb_private {
16
17
/// \class BreakpointResolverFileLine BreakpointResolverFileLine.h
18
/// "lldb/Breakpoint/BreakpointResolverFileLine.h" This class sets breakpoints
19
/// by file and line.  Optionally, it will look for inlined instances of the
20
/// file and line specification.
21
22
class BreakpointResolverFileLine : public BreakpointResolver {
23
public:
24
  BreakpointResolverFileLine(const lldb::BreakpointSP &bkpt,
25
                             lldb::addr_t offset, bool skip_prologue,
26
                             const SourceLocationSpec &location_spec);
27
28
  static BreakpointResolver *
29
  CreateFromStructuredData(const lldb::BreakpointSP &bkpt,
30
                           const StructuredData::Dictionary &data_dict,
31
                           Status &error);
32
33
  StructuredData::ObjectSP SerializeToStructuredData() override;
34
35
1.59k
  ~BreakpointResolverFileLine() override = default;
36
37
  Searcher::CallbackReturn SearchCallback(SearchFilter &filter,
38
                                          SymbolContext &context,
39
                                          Address *addr) override;
40
41
  lldb::SearchDepth GetDepth() override;
42
43
  void GetDescription(Stream *s) override;
44
45
  void Dump(Stream *s) const override;
46
47
  /// Methods for support type inquiry through isa, cast, and dyn_cast:
48
0
  static inline bool classof(const BreakpointResolverFileLine *) {
49
0
    return true;
50
0
  }
51
0
  static inline bool classof(const BreakpointResolver *V) {
52
0
    return V->getResolverID() == BreakpointResolver::FileLineResolver;
53
0
  }
54
55
  lldb::BreakpointResolverSP
56
  CopyForBreakpoint(lldb::BreakpointSP &breakpoint) override;
57
58
protected:
59
  void FilterContexts(SymbolContextList &sc_list, bool is_relative);
60
61
  friend class Breakpoint;
62
  SourceLocationSpec m_location_spec;
63
  bool m_skip_prologue;
64
65
private:
66
  BreakpointResolverFileLine(const BreakpointResolverFileLine &) = delete;
67
  const BreakpointResolverFileLine &
68
  operator=(const BreakpointResolverFileLine &) = delete;
69
};
70
71
} // namespace lldb_private
72
73
#endif // LLDB_BREAKPOINT_BREAKPOINTRESOLVERFILELINE_H