Coverage Report

Created: 2026-05-24 06:43

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/perfetto/buildtools/android-unwinding/libunwindstack/MemoryFileAtOffset.h
Line
Count
Source
1
/*
2
 * Copyright (C) 2019 The Android Open Source Project
3
 *
4
 * Licensed under the Apache License, Version 2.0 (the "License");
5
 * you may not use this file except in compliance with the License.
6
 * You may obtain a copy of the License at
7
 *
8
 *      http://www.apache.org/licenses/LICENSE-2.0
9
 *
10
 * Unless required by applicable law or agreed to in writing, software
11
 * distributed under the License is distributed on an "AS IS" BASIS,
12
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
 * See the License for the specific language governing permissions and
14
 * limitations under the License.
15
 */
16
17
#pragma once
18
19
#include <stdint.h>
20
21
#include <unwindstack/Memory.h>
22
23
namespace unwindstack {
24
25
class MemoryFileAtOffset : public Memory {
26
 public:
27
5.59k
  MemoryFileAtOffset() = default;
28
  virtual ~MemoryFileAtOffset();
29
30
  bool Init(const std::string& file, uint64_t offset, uint64_t size = UINT64_MAX);
31
32
0
  uint8_t* GetPtr(size_t addr = 0) override { return addr < size_ ? data_ + addr : nullptr; }
33
34
  size_t Read(uint64_t addr, void* dst, size_t size) override;
35
36
0
  size_t Size() { return size_; }
37
38
  void Clear() override;
39
40
 protected:
41
  size_t size_ = 0;
42
  size_t offset_ = 0;
43
  uint8_t* data_ = nullptr;
44
};
45
46
}  // namespace unwindstack