xref: /freebsd/contrib/llvm-project/lld/COFF/PDB.h (revision 7fdf597e96a02165cfe22ff357b857d5fa15ed8a)
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 
16 namespace llvm::codeview {
17 union DebugInfo;
18 }
19 
20 namespace lld {
21 class Timer;
22 
23 namespace coff {
24 class SectionChunk;
25 class COFFLinkerContext;
26 
27 void createPDB(COFFLinkerContext &ctx, llvm::ArrayRef<uint8_t> sectionTable,
28                llvm::codeview::DebugInfo *buildId);
29 
30 std::optional<std::pair<llvm::StringRef, uint32_t>>
31 getFileLineCodeView(const SectionChunk *c, uint32_t addr);
32 
33 } // namespace coff
34 } // namespace lld
35 
36 #endif
37