1//===- PDB.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 LLD_COFF_PDB_H
10#define LLD_COFF_PDB_H
11
12#include "llvm/ADT/ArrayRef.h"
13#include "llvm/ADT/StringRef.h"
14#include <optional>
15
16namespace llvm::codeview {
17union DebugInfo;
18}
19
20namespace lld {
21class Timer;
22
23namespace coff {
24class SectionChunk;
25class COFFLinkerContext;
26
27void createPDB(COFFLinkerContext &ctx, llvm::ArrayRef<uint8_t> sectionTable,
28 llvm::codeview::DebugInfo *buildId);
29
30std::optional<std::pair<llvm::StringRef, uint32_t>>
31getFileLineCodeView(const SectionChunk *c, uint32_t addr);
32
33} // namespace coff
34} // namespace lld
35
36#endif
37